我对 win32 API 编码很陌生。目前我面临一个问题:
- 我创建了一个 mdi 子窗口并在其中插入了一个文本框。当我单击 mdi 子窗口的最大化按钮时,问题就出现了,窗口扩展但文本框尺寸保持不变,如编码中所述。我的问题是如何随着窗口重新调整文本框的大小。
我正在使用 turboc++ 4.5 编辑器。
提前致谢。
谢谢,问题解决了:
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;
}
您需要WM_SIZE
在 MDI 子窗口中处理消息。当您收到它时,您需要使用MoveWindow
文本框来调整它的大小以填充 MDI 子窗口。
顺便说一句:Turbo C++ 4.5?真的吗?那是……很老了,委婉地说。更现代的工具是免费提供的。