#include<windows.h>
LRESULT CALLBACK WindowProc(
HWND hwnd, // handle to window
UINT uMsg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
);
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd)
{
//填写窗口类
WNDCLASS wndobj; wndobj.hInstance=(HINSTANCE)1;
wndobj.lpszClassName="NO_1";
wndobj.lpszMenuName =NULL;
wndobj.cbClsExtra =NULL;
wndobj.cbWndExtra =NULL;
wndobj.lpfnWndProc=WindowProc;
wndobj.style =CS_HREDRAW|CS_VREDRAW;
wndobj.hIcon =LoadIcon(NULL,IDI_APPLICATION);
wndobj.hCursor = LoadCursor(NULL,IDC_CROSS);
wndobj.hbrBackground =(HBRUSH)GetStockObject(WHITE_BRUSH);//申请注册窗口类
if (!RegisterClass(&wndobj))
{
MessageBox(NULL,"Register Error!","information",MB_ICONSTOP);
return 0;
}
//实例化窗口类 HWND hwnd;
hwnd=0;
hwnd=CreateWindow(
"NO_1",
"First Window",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
200,200,
NULL,NULL,
(HINSTANCE)1,NULL);
if (!hwnd)
{
MessageBox(NULL,"CreateWindow Error!","information",MB_ICONSTOP);
return 0;
}
//显示窗体
ShowWindow(hwnd,SW_SHOWDEFAULT);
UpdateWindow(hwnd);//处理Windows消息
MSG msg;
while(GetMessage(&msg,hwnd,0,0))
{ TranslateMessage (&msg);
DispatchMessage (&msg); }
return msg.wParam ;
}//======================回调函数定义==============================
LRESULT CALLBACK WindowProc(
HWND hwnd, // handle to window
UINT uMsg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
)
{
HDC hdc ;//设备句柄
PAINTSTRUCT ps ;//数据结构
RECT rect ;//数据结构
switch (uMsg)
{
case WM_PAINT:
hdc = BeginPaint (hwnd, &ps) ;
GetClientRect (hwnd, &rect) ;
DrawText (hdc, TEXT ("Hello, Windows 98!"), -1, &rect,DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;
EndPaint (hwnd, &ps) ;
return 0 ;
case WM_DESTROY:
PostQuitMessage (0) ;
return 0 ;
}
return DefWindowProc(hwnd,uMsg,wParam,lParam);
}
LRESULT CALLBACK WindowProc(
HWND hwnd, // handle to window
UINT uMsg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
);
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd)
{
//填写窗口类
WNDCLASS wndobj; wndobj.hInstance=(HINSTANCE)1;
wndobj.lpszClassName="NO_1";
wndobj.lpszMenuName =NULL;
wndobj.cbClsExtra =NULL;
wndobj.cbWndExtra =NULL;
wndobj.lpfnWndProc=WindowProc;
wndobj.style =CS_HREDRAW|CS_VREDRAW;
wndobj.hIcon =LoadIcon(NULL,IDI_APPLICATION);
wndobj.hCursor = LoadCursor(NULL,IDC_CROSS);
wndobj.hbrBackground =(HBRUSH)GetStockObject(WHITE_BRUSH);//申请注册窗口类
if (!RegisterClass(&wndobj))
{
MessageBox(NULL,"Register Error!","information",MB_ICONSTOP);
return 0;
}
//实例化窗口类 HWND hwnd;
hwnd=0;
hwnd=CreateWindow(
"NO_1",
"First Window",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
200,200,
NULL,NULL,
(HINSTANCE)1,NULL);
if (!hwnd)
{
MessageBox(NULL,"CreateWindow Error!","information",MB_ICONSTOP);
return 0;
}
//显示窗体
ShowWindow(hwnd,SW_SHOWDEFAULT);
UpdateWindow(hwnd);//处理Windows消息
MSG msg;
while(GetMessage(&msg,hwnd,0,0))
{ TranslateMessage (&msg);
DispatchMessage (&msg); }
return msg.wParam ;
}//======================回调函数定义==============================
LRESULT CALLBACK WindowProc(
HWND hwnd, // handle to window
UINT uMsg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
)
{
HDC hdc ;//设备句柄
PAINTSTRUCT ps ;//数据结构
RECT rect ;//数据结构
switch (uMsg)
{
case WM_PAINT:
hdc = BeginPaint (hwnd, &ps) ;
GetClientRect (hwnd, &rect) ;
DrawText (hdc, TEXT ("Hello, Windows 98!"), -1, &rect,DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;
EndPaint (hwnd, &ps) ;
return 0 ;
case WM_DESTROY:
PostQuitMessage (0) ;
return 0 ;
}
return DefWindowProc(hwnd,uMsg,wParam,lParam);
}
解决方案 »
- 对话框在没有标题栏的情况下以最大化方式启动,谢谢!
- 图像没法显示
- 软件发布问题
- 在一个对话框内调用另一个对话框之后,怎样摧毁原来的对话框?
- 问一个很菜的问题,在第一个对话框中点击打开第二个对话框后如何关闭第一个对话框?
- 急!!!当鼠标离开客户区时应用程序如何得知???
- SockServer如何区别有同一IP和端口的客户端连接,并给指定的连接发送数据
- 请问,我在做windows标准帮助系统的时候,
- 能详细说明一下如何生成一个bmp文件?迫切需要!!!
- 怎样打开一个目录?
- 送分,我机上现装有VS2003,能否再装VS6.0,,让其共存呢?解决定给分
- 小弟初学MFC,不知道各位对《VC6从入门到精通》这本书看法(老外写的)
"NO_1",
"First Window",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
200,200,
NULL,NULL,
(HINSTANCE)1,NULL);除了这句中(HINSTANCE)1这个参数我不知老兄是何道理外,没发现什么问题呀。应该不会如你所说。
为什么会这样呀
while(GetMessage(&msg,hwnd,0,0) > 0)
{
}也可
The possibility of a -1 return value means that such code can lead to fatal application errors.