1.CreateWindow
2.CreateWindowEx
-----------
一种方法是在WinMain方法中创建,注意要把CreateWindow函数的hWndParent参数设置为窗口的句柄。
二种方法,我们知道,在窗口创建后,显示之前,即CreateWindow函数返回之前,我们会收到WM_CREATE消息,我们响应它的号召,创建一个按钮。
------------------
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HWND BS_hwnd;
HWND hwndButton1;
HWND hwndButton2;
HWND hwndButton3;
HWND hwndButton4;
HWND hwndButton5;
HWND hwndButton6;
HWND hwndButton7;
switch (message)
{
case WM_CREATE:
#if 0
BS_hwnd = CreateWindow(TEXT("button"), //类别
L"TESTBUTTON",//按钮上的文本
WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,//样式
400, 10,//相对的起始坐标
150, 25,//宽,高
hWnd, (HMENU)1,//可以通过LOWORD (wParam)来获取,识别哪个按钮发送消息,当然还有其它方式
((LPCREATESTRUCT)lParam)->hInstance, NULL);
break;
#else
{
hwndButton1=CreateWindow(TEXT("button"), L"计算器", WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON,
35, 10, 160, 60, hWnd, (HMENU)IDB_ONE, ((LPCREATESTRUCT)lParam)->hInstance, NULL);
ShowWindow(hwndButton1, true);
hwndButton2=CreateWindow(TEXT("button"), L"画图", WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON,
35, 80, 160, 60, hWnd, (HMENU)IDB_TWO, ((LPCREATESTRUCT)lParam)->hInstance, NULL);
ShowWindow(hwndButton2, true);
hwndButton3=CreateWindow(TEXT("button"), L"记事本", WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON,
35, 150, 160, 60, hWnd, (HMENU)IDB_THREE, ((LPCREATESTRUCT)lParam)->hInstance, NULL);
ShowWindow(hwndButton3, true);
hwndButton4 = CreateWindow(TEXT("button"), L"cmd", WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON,
35, 220, 160, 60, hWnd, (HMENU)IDB_FOUR, ((LPCREATESTRUCT)lParam)->hInstance, NULL);
ShowWindow(hwndButton4, true);
hwndButton5 = CreateWindow(TEXT("button"), L"远程桌面", WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON,
35, 290, 160, 60, hWnd, (HMENU)IDB_FIVE, ((LPCREATESTRUCT)lParam)->hInstance, NULL);
ShowWindow(hwndButton5, true);
hwndButton6 = CreateWindow(TEXT("button"), L"放大镜", WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON,
35, 360, 160, 60, hWnd, (HMENU)IDB_SIX, ((LPCREATESTRUCT)lParam)->hInstance, NULL);
ShowWindow(hwndButton6, true);
}
break;
#endif
case WM_COMMAND:
{
int wmId = LOWORD(wParam);
// 分析菜单选择:
switch (wmId)
{
case IDM_ABOUT:
DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
break;
case IDM_EXIT:
DestroyWindow(hWnd);
break;
case IDB_ONE:
WinExec("calc.exe", SW_SHOW);
break;
case IDB_TWO:
WinExec("mspaint.exe", SW_SHOW);
break;
case IDB_THREE:
WinExec("notepad.exe", SW_SHOW);
break;
case IDB_FOUR:
WinExec("cmd.exe", SW_SHOW);
break;
case IDB_FIVE:
WinExec("mstsc.exe", SW_SHOW);
break;
case IDB_SIX:
WinExec("magnify.exe", SW_SHOW);
break;
----------------
参考文献
1.https://blog.csdn.net/jiangqin115/article/details/78385681
2.https://www.cnblogs.com/tangqs/archive/2011/09/18/2180421.html