文档介绍:Windows 程序设计基础
Windows 程序设计基础
陶治江
四川大学电气信息学院
1
Windows 程序设计基础
Windows 程序一般进行的是三个模块的调用:
:处理的是在传统上是使用操作系统内核处理的事物——内存管理、文件
I/O 和事物处理
:用户界面,实现所有的窗口逻辑
:一个图形设备接口,允许程序在屏幕和打印机上显示文本和图形
第一个窗口程序的实例:
#include<>
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow
)
{
static TCHAR szAppName[]=TEXT("Hello,Windows XP");
HWND hwnd;
MSG msg;
WNDCLASS wndclass;
=CS_HREDRAW|CS_VREDRAW;
=WndProc;
=0;
=0;
=hInstance;
=LoadIcon(NULL,IDI_APPLICATION);
=LoadCursor(NULL,IDC_ARROW);
=(HBRUSH)GetStockObject(WHITE_BRUSH); =NULL;
=szAppName;
if(!RegisterClass(&wndclass))
{
MessageBox(NULL,TEXT("This program needs Windows NT!"),szAppName,MB_ICONERROR);
return 0;
}
hwnd=CreateWindow(szAppName,TEXT("Hello 程序"),WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL);
ShowWindow(hwnd,nCmdShow);
UpdateWindow(hwnd);
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
2
Windows 程序设计基础
}
return ;
}
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
RECT rect;
switch(message)
{
case WM_CREATE:
PlaySound(TEXT(""),NULL,SND_FILENAME|SND_ASYNC);
return 0;
case WM_PAINT:
hdc=BeginPaint(hwnd,&ps);
GetClientRect(hwnd,&rect);
DrawText(hdc,TEXT(" 这可是第一个 Windows 应用程序
哦!"),-1,&rect,DT_SINGLELINE|DT_VCENTER|DT_CENTER );
EndPaint(hwnd,&ps);
return 0;
case WM_DESTROY:
PostQuitMessage