3

我对 win32 API 编码很陌生。目前我面临一个问题:

  1. 我创建了一个 mdi 子窗口并在其中插入了一个文本框。当我单击 mdi 子窗口的最大化按钮时,问题就出现了,窗口扩展但文本框尺寸保持不变,如编码中所述。我的问题是如何随着窗口重新调整文本框的大小。

我正在使用 turboc++ 4.5 编辑器。

提前致谢。

4

2 回答 2

3

谢谢,问题解决了:

LRESULT  CALLBACK _export ChildProc( HWND hChild, UINT iMessage, WPARAM wParam,LPARAM      lParam )

{

HWND    Edit1;
HINSTANCE hInstance1;
PAINTSTRUCT ps;
int nWidth,nHeight;
 switch (iMessage)
 {

         case WM_CREATE :


         case WM_SIZE:  ''''''mentioned  by Jerry Coffin
                                            hInstance1 = GetWindowWord(hChild,GWW_HINSTANCE);
                                        Edit1 = CreateWindow("EDIT","",WS_CHILD|WS_VISIBLE|ES_AUTOHSCROLL|ES_AUTOVSCROLL|ES_MULTILINE|ES_READONLY| WS_VSCROLL|WS_HSCROLL| WS_BORDER,0,0,1000,500,hChild,100,hInstance1,NULL);
                                        nWidth = LOWORD(lParam);  /* width  */
                                        nHeight = HIWORD(lParam); /* height */

                                        MoveWindow (Edit1,0,0,nWidth,nHeight,1);
                                            ShowWindow(Edit1,SW_SHOWNORMAL);
                                        break;
         default :
                return DefWindowProc( hChild, iMessage, wParam, lParam );
 }
 return 0;

}

于 2013-03-08T14:09:06.843 回答
2

您需要WM_SIZE在 MDI 子窗口中处理消息。当您收到它时,您需要使用MoveWindow文本框来调整它的大小以填充 MDI 子窗口。

顺便说一句:Turbo C++ 4.5?真的吗?那是……很老了,委婉地说。更现代的工具是免费提供的。

于 2013-03-06T06:32:03.393 回答