消息关闭
    暂无新消息!




#include <windows.h>
#include <stdio.h>
#include <tchar.h>
//#include <iostream>

//using namespace std;



TCHAR Weixin2003[] = _T("MySimpleTextBoxApp");// 主窗口类名

static HINSTANCE g_hInst = NULL;

LRESULT CALLBACK WinSunProc(
  HWND hwnd,      // handle to window  处理窗口
  UINT uMsg,      // message identifier消息标识符
  WPARAM wParam,  // first message parameter第一个消息参数
  LPARAM lParam   // second message parameter第二消息参数
);

int WINAPI WinMain(        
  HINSTANCE hInstance,      // handle to current instance处理当前实例
  HINSTANCE hPrevInstance,  // handle to previous instance处理前实例
  LPSTR lpCmdLine,          // command line命令行
  int nCmdShow              // show state显示状态
)
{
WNDCLASS wndcls;
wndcls.cbClsExtra=0;
wndcls.cbWndExtra=0;
wndcls.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
wndcls.hCursor=LoadCursor(NULL,IDC_CROSS);
wndcls.hIcon=LoadIcon(NULL,IDI_ERROR);
wndcls.hInstance=hInstance;
wndcls.lpfnWndProc=WinSunProc;
wndcls.lpszClassName=Weixin2003;
wndcls.lpszMenuName=NULL;
wndcls.style=CS_HREDRAW | CS_VREDRAW;
RegisterClass(&wndcls);

HWND hwnd;
hwnd=CreateWindow(Weixin2003,_T("简单文本框"),WS_OVERLAPPEDWINDOW,0,0,600,400,NULL,NULL,hInstance,NULL);

ShowWindow(hwnd,SW_SHOWNORMAL);
UpdateWindow(hwnd);
    g_hInst = hInstance;  

MSG msg;
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}

LRESULT CALLBACK WinSunProc(
  HWND hwnd,      // handle to window处理窗口
  UINT uMsg,      // message identifier消息标识符
  WPARAM wParam,  // first message parameter第一个消息参数
  LPARAM lParam   // second message parameter二消息参数
)
{
switch(uMsg)
{
    case WM_CREATE:  
        CreateWindow(_T("edit"),_T(""),  //用_T("edit")   _T("")编辑框一出现带的字
       WS_CHILD | WS_VISIBLE | WS_HSCROLL | WS_VSCROLL | ES_MULTILINE |  
            ES_WANTRETURN,  
            0,0,200,300, 
            hwnd, NULL,g_hInst, NULL);

        break;

case WM_CLOSE:
if(IDYES==MessageBox(hwnd,_T("是否真的结束?"),_T("weixin"),MB_YESNO))
{
DestroyWindow(hwnd);
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd,uMsg,wParam,lParam);
}
return 0;
}
这是我编写的程序,问一下,把case WM_CREATE: 中的 0, 0, 300, 300, 换成什么可以使编辑框和父窗口一样大小,父窗口改变,编辑框也一起跟着改变。

2个回答

︿ 2
AdjustWindowRect
The AdjustWindowRect function calculates the required size of the window rectangle, based on the desired client-rectangle size. The window rectangle can then be passed to the CreateWindow function to create a window whose client area is the desired size. 

BOOL AdjustWindowRect(
  LPRECT lpRect,  // pointer to client-rectangle structure
  DWORD dwStyle,  // window styles
  BOOL bMenu      // menu-present flag
);
 
Parameters
lpRect 
Pointer to aRECT structure that contains the coordinates of the top-left and bottom-right corners of the desired client area. When the function returns, the structure contains the coordinates of the top-left and bottom-right corners of the window to accommodate the desired client area. 
dwStyle 
Specifies the window styles of the window whose required size is to be calculated. 
bMenu 
Specifies whether the window has a menu. 
Return Values
If the function succeeds, the return value is nonzero.

If the function fails, the return value is zero. To get extended error information, callGetLastError. 

Remarks
A client rectangle is the smallest rectangle that completely encloses a client area. A window rectangle is the smallest rectangle that completely encloses the window, which includes the client area and the nonclient area. 

The AdjustWindowRect function does not add extra space when a menu bar wraps to two or more rows. 

QuickInfo
  Windows NT: Requires version 3.1 or later.
  Windows: Requires Windows 95 or later.
  Windows CE: Unsupported.
  Header: Declared in winuser.h.
  Import Library: Use user32.lib.

See Also
Windows Overview, Window Functions, AdjustWindowRectEx, CreateWindow,RECT 

 
︿ 0
Win32 SDK编程效率太低,了解原理就可以了(主要是消息机制)。

图形用户界面(GUI)编程可以学习C++ Builder,架构先进(和C#一样拖控件),入门比较容易。

C++ Builder的较新版本——RAD Studio XE3以上版本添加对iOS和Android的支持工具包,让开发者编写的Delphi/C++应用可以同时在Windows、OS X、iOS和Android平台上运行。现在最新版本是RAD Studio 10.2。

仅供参考:
初学者学习C++ Builder第一个程序(模拟聊天室),经典!
http://blog.163.com/tab_98/blog/static/11924097201693033057497/
C++ Builder绘图示例(模拟时钟)
http://blog.163.com/tab_98/blog/static/11924097201611324819376/
从C语言的菜单界面管理系统到C++ Builder的图形用户界面,一个简单的电话簿Demo例子
http://blog.163.com/tab_98/blog/static/1192409720158673337998/

C++ Builder写的《ZEC 纸牌游戏21点》
http://blog.163.com/tab_98/blog/static/119240972016115113039304/
C++ Builder写的《ZEC 僵尸版打地鼠》
http://blog.163.com/tab_98/blog/static/11924097201601084117748/
C++ Builder写的《ZEC 推箱子》
http://blog.163.com/tab_98/blog/static/11924097201612011839642/

书籍推荐:
《C++Builder 6程序设计教程(第二版)》 (陆卫忠,刘文亮 等编著 /2011-04-01 /科学出版社)(当当网)
《C++Builder 6编程实例精解》(赵明现),PDF,是数字版的,非扫描版的,里面还有一个俄罗斯方块游戏的完整实现。
《精彩C++Builder 6程序设计》(台湾 吴逸贤),里面有10几个简单小游戏的实现,可以自己看懂以后再重写,才是自己掌握的。
《C++ Builder 5高级编程实例精解》(刘滨 编著)都是较大的实用的程序。