您的位置:首页 > 其它

孙鑫VC学习(第1课--Windows程序内部运行原理)

2011-05-21 22:08 531 查看
创建一个完整的窗口需要经过下面四个操作步骤:
设计一个窗口类;
注册窗口类;
创建窗口;
显示及更新窗口。

创建一个WIN32 Application的程序,代码如下:
#include <windows.h>
#include <stdio.h>

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(BLACK_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","北京维新科学技术培训中心",WS_OVERLAPPEDWINDOW,

0,0,600,400,NULL,NULL,hInstance,NULL);

ShowWindow(hwnd,SW_SHOWNORMAL);
UpdateWindow(hwnd);

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_CHAR:

char szChar[20];

sprintf(szChar,"char is %d",wParam);

MessageBox(hwnd,szChar,"weixin",0);

break;
case WM_LBUTTONDOWN:

MessageBox(hwnd,"mouse clicked","weixin",0);

HDC hdc;

hdc=GetDC(hwnd);

TextOut(hdc,0,50,"计算机编程语言培训",strlen("计算机编程语言培训"));

ReleaseDC(hwnd,hdc);

break;
case WM_PAINT:

HDC hDC;

PAINTSTRUCT ps;

hDC=BeginPaint(hwnd,&ps);

TextOut(hDC,0,0,"维新培训",strlen("维新培训"));

EndPaint(hwnd,&ps);

break;
case WM_CLOSE:

if(IDYES==MessageBox(hwnd,"是否真的结束?","weixin",MB_YESNO))

{

DestroyWindow(hwnd);

}

break;
case WM_DESTROY:

PostQuitMessage(0);

break;
default:

return DefWindowProc(hwnd,uMsg,wParam,lParam);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: