Wine 0.8: VB compatibility !!

Dmitry Timoshkov dmitry at baikal.ru
Sun Nov 10 02:40:32 CST 2002


"Roderick Colenbrander" <thunderbird2k at gmx.net> wrote:

> After this there are two very simple apps one containing only an empty form 
> and one containing a button on a form that run well. The only minor problem 
> is in the button app. When you click on the button it should show a 
> messagebox containing a text. On windows the text in the messagebox is 
> alligned to the left or perhaps to the center, but on wine the text is 
> alligned to the right. (looks ugly)

Attached patch should fix a MessageBox bug.

Changelog:
    Fix copy/paste bug. Make MessageBox without an icon look better.

-- 
Dmitry.
-------------- next part --------------
--- cvs/cw/crossover/office/wine/windows/msgbox.c	Sun Nov 10 15:04:30 2002
+++ wine/windows/msgbox.c	Sun Nov 10 16:31:02 2002
@@ -158,6 +158,11 @@
     /* Get the icon height */
     GetWindowRect(GetDlgItem(hwnd, MSGBOX_IDICON), &rect);
     MapWindowPoints(0, hwnd, (LPPOINT)&rect, 2);
+    if (!(lpmb->dwStyle & MB_ICONMASK))
+    {
+        rect.bottom = rect.top;
+        rect.right = rect.left;
+    }
     iheight = rect.bottom - rect.top;
     ileft = rect.left;
     iwidth = rect.right - ileft;
@@ -198,7 +203,8 @@
     DrawTextW( hdc, lpszText, -1, &rect,
 	       DT_LEFT | DT_EXPANDTABS | DT_WORDBREAK | DT_CALCRECT);
     /* Min text width corresponds to space for the buttons */
-    tleft = 2 * ileft + iwidth;
+    tleft = ileft + iwidth;
+    if (iwidth) tleft += ileft;
     twidth = max((bw + bspace) * buttons + bspace - tleft, rect.right);
     theight = rect.bottom;
 
@@ -407,7 +413,7 @@
     if (HIWORD(msgbox->lpszIcon))
         RtlCreateUnicodeStringFromAsciiz(&iconW, msgbox->lpszIcon);
     else
-        captionW.Buffer = (LPWSTR)msgbox->lpszIcon;
+        iconW.Buffer = (LPWSTR)msgbox->lpszIcon;
 
     msgboxW.cbSize = sizeof(msgboxW);
     msgboxW.hwndOwner = msgbox->hwndOwner;


More information about the wine-patches mailing list