代码如下:----------------------------------------------------------------
#include <windows.h>LRESULT CALLBACK WndProc(HWND hwnd,
UINT message,
WPARAM wParam,
LPARAM lParam);int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nShowCmd)
{
WNDCLASS wndclass;
wndclass.cbClsExtra = 0;
wndclass.cbWndExtra = 0;
wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wndclass.hCursor = LoadCursor(NULL,IDC_ARROW);
wndclass.hIcon = LoadIcon(NULL,IDI_APPLICATION);
wndclass.hInstance = hInstance;
wndclass.lpfnWndProc = WndProc;
wndclass.lpszClassName = "Counter";
wndclass.lpszMenuName = NULL;
wndclass.style = CS_HREDRAW | CS_VREDRAW; RegisterClass(&wndclass);
HWND hwnd;
hwnd = CreateWindow(
"Counter",
"计算器",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL);
ShowWindow(hwnd,SW_SHOWNORMAL);
UpdateWindow(hwnd); MSG msg;
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}LRESULT CALLBACK WndProc(HWND hwnd,
UINT message,
WPARAM wParam,
LPARAM lParam)
{
static HWND HndButton;
static HINSTANCE hInstance; switch(message)
{
case WM_CREATE:
HndButton = CreateWindow(
"Counter",
"0",
WS_CHILD | WS_VISIBLE | BS_DEFPUSHBUTTON,
10,
10,
40,
30,
hwnd,
(HMENU)1001,
((LPCREATESTRUCT)lParam)->hInstance,
NULL);
break;
case WM_CLOSE:
if(IDYES == MessageBox(hwnd,"really exit?","exit",MB_YESNO))
DestroyWindow(hwnd);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
}
return DefWindowProc(hwnd,message,wParam,lParam);
}
-----------------------------------------------------
为什么产生的程序只是一片空白呢?
看不到按钮!
#include <windows.h>LRESULT CALLBACK WndProc(HWND hwnd,
UINT message,
WPARAM wParam,
LPARAM lParam);int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nShowCmd)
{
WNDCLASS wndclass;
wndclass.cbClsExtra = 0;
wndclass.cbWndExtra = 0;
wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wndclass.hCursor = LoadCursor(NULL,IDC_ARROW);
wndclass.hIcon = LoadIcon(NULL,IDI_APPLICATION);
wndclass.hInstance = hInstance;
wndclass.lpfnWndProc = WndProc;
wndclass.lpszClassName = "Counter";
wndclass.lpszMenuName = NULL;
wndclass.style = CS_HREDRAW | CS_VREDRAW; RegisterClass(&wndclass);
HWND hwnd;
hwnd = CreateWindow(
"Counter",
"计算器",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL);
ShowWindow(hwnd,SW_SHOWNORMAL);
UpdateWindow(hwnd); MSG msg;
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}LRESULT CALLBACK WndProc(HWND hwnd,
UINT message,
WPARAM wParam,
LPARAM lParam)
{
static HWND HndButton;
static HINSTANCE hInstance; switch(message)
{
case WM_CREATE:
HndButton = CreateWindow(
"Counter",
"0",
WS_CHILD | WS_VISIBLE | BS_DEFPUSHBUTTON,
10,
10,
40,
30,
hwnd,
(HMENU)1001,
((LPCREATESTRUCT)lParam)->hInstance,
NULL);
break;
case WM_CLOSE:
if(IDYES == MessageBox(hwnd,"really exit?","exit",MB_YESNO))
DestroyWindow(hwnd);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
}
return DefWindowProc(hwnd,message,wParam,lParam);
}
-----------------------------------------------------
为什么产生的程序只是一片空白呢?
看不到按钮!
解决方案 »
- PreTranslateMessage如何根据按钮caption进行消息拦截
- 想在程序中播放视频,但是media player 不支持real格式,怎样根据文件的类型分别调用real或media控件在程序内播放.
- VC++问题,请高手指点,我在Word文档中,加入自己写的Activex控件,我现在想当鼠标移动到该控件上就出现一个提示框,请问该如何实现,
- 查询语句
- Netbios 需要什么动态库
- Win32编程中,可以定义的数组最大为多大?
- WORD文档中ACtivex持久化问题--添加ACtivex对应数据流 指定 ISTREAM的名称
- ************ 在使用WebBrowser控件时,怎样定位页面IHTMLElement元素? ***********
- CopyFile()问题求解
- 如何将Edit Box中的数据读入一个数组?谢了!
- 关于COM的几个小问题,我觉得比较难理解,期待耐心的热心的人
- 请问:SDI中弹出的对话框比基于对话框中的CListBox有什么区别吗
子窗口的类名必须为"button"。
但是怎么实现消息映射呢?就是我按下一个按钮怎样才能使它在窗口中产生一个数字呢?
但是具体要怎么实现呢?
而这个类的WndProc又就是你的这个函数,所以程序一直在递归调用:(
比如按下后弹出一个MessageBox
而是我不知道主窗口的WndProc和子窗口的ButtonProc之间应该怎样才能联系