在win32 api c中使用窗口调整文本框的大小

时间:2013-03-06 06:11:43

标签: c++ api winapi

我是win32 API编码的新手。 目前我遇到了一个问题:

  1. 我已经创建了一个mdi子窗口,并在其中插入了一个文本框。当我单击mdi子窗口的最大化按钮时,问题就出现了,窗口展开但文本框尺寸保持不变,如编码中所述。我的问题是如何重新调整文本框和窗口的大小。
  2. 我正在使用turboc ++ 4.5编辑器。

    提前感谢。

2 个答案:

答案 0 :(得分:2)

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

暂且不说:Turbo C ++ 4.5?真?这是......很老了,说得温和一点。更多现代工具可以免费获得。

答案 1 :(得分:2)

谢谢,问题解决了:

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;

}