手机
当前位置:查字典教程网 >编程开发 >C语言 >win32 api实现简单的消息窗口示例
win32 api实现简单的消息窗口示例
摘要:复制代码代码如下:#includeLRESULTCALLBACKWndProc(HWND,UINT,WPARAM,LPARAM);intWI...

复制代码 代码如下:

#include<windows.h>

LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,PSTR szCmdLine,int iCmdShow)

{

static TCHAR szAppName[]=TEXT("HelloWin");

HWND hwnd;

MSG msg;

WNDCLASS wndclass;

wndclass.style =CS_HREDRAW|CS_VREDRAW;

wndclass.lpfnWndProc =WndProc;

wndclass.cbClsExtra =0;

wndclass.cbWndExtra =0;

wndclass.hInstance =hInstance;

wndclass.hIcon =LoadIcon(NULL,IDI_APPLICATION);

wndclass.hCursor =LoadCursor(NULL,IDC_ARROW);

wndclass.hbrBackground =(HBRUSH)GetStockObject(WHITE_BRUSH);

wndclass.lpszMenuName =NULL;

wndclass.lpszClassName =szAppName;

if(!RegisterClass(&wndclass))

{

MessageBox(NULL,TEXT("This program requires Windows NT!"),szAppName,MB_ICONERROR);

return 0;

}

hwnd=CreateWindow(szAppName,TEXT("The hello program"),WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,

CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL);

ShowWindow(hwnd,iCmdShow);

UpdateWindow(hwnd);

while(GetMessage(&msg,NULL,0,0))

{

TranslateMessage(&msg);

DispatchMessage(&msg);

}

return msg.wParam;

}

LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)

{

HDC hdc;

PAINTSTRUCT ps;

RECT rect;

switch(message)

{

case WM_CREATE:

PlaySound(TEXT("hellowin.wav"),NULL,SND_FILENAME|SND_ASYNC);

return 0;

case WM_PAINT:

hdc=BeginPaint(hwnd,&ps);

GetClientRect(hwnd,&rect);

DrawText(hdc,TEXT("HELLO WORLD!"),-1,&rect,

DT_SINGLELINE|DT_CENTER|DT_VCENTER);

EndPaint(hwnd,&ps);

return 0;

case WM_DESTROY:

PostQuitMessage(0);

return 0;

}

return DefWindowProc(hwnd,message,wParam,lParam);

}

【win32 api实现简单的消息窗口示例】相关文章:

简单说说STL的内存管理

C/C++实现矩阵的转置(示例代码)

怎么实现类的成员函数作为回调函数

用C++实现队列的程序代码

用c++实现x的y次幂的代码

用C++实现单向循环链表的解决方法

C++实现正态随机分布的方法

利用ace的ACE_Task等类实现线程池的方法详解

linux c 获得当前进程的进程名和执行路径(示例)

使用map实现单词转换的实例分析

精品推荐
分类导航