因为缺少wmv文件,就把那部分的消息删除了….! #include <windows.h> //申明窗口过程函数 LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ; //Windows程序的入口函数 int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { static TCHAR szAppName[] = TEXT ("HelloWin") ; HWND hwnd ;//定义一个Windows句柄的变量 MSG msg ;//定义一个消息的结构变量 //第一步: 定义一个窗口类的结构,此结构中的10个域描述了窗口类的特征,下面依次给这10个域赋值 WNDCLASS wndclass ; wndclass.style = CS_HREDRAW | CS_VREDRAW ;//基于此窗口类创建的窗口风格 wndclass.lpfnWndProc = WndProc ;//指向窗口过程函数的指针 wndclass.cbClsExtra = 0 ;//窗口类结构的预留空间 wndclass.cbWndExtra = 0 ;//同上 wndclass.hInstance = hInstance ;//Windows程序的实例句柄,这是由编译器提供的 //为所有基于这个窗口类建立的窗口设置一个图标 wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ; //为所有基于这个窗口类建立的窗口设置一个鼠标 wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ; //指定了基于这个窗口类创建的窗口背景颜色,用取得一个白色刷子的句柄来实现 wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ; //指定窗口类的菜单,用NULL赋值表示这个程序中没有菜单 wndclass.lpszMenuName = NULL ; //指定窗口类的名称 wndclass.lpszClassName = szAppName ; // 第二步:向Windows注册一个窗口类,如果在Win98下运行RegisterClass函数,将返回0表明有错误发生 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, //窗口位置的X坐标 CW_USEDEFAULT, //窗口位置的Y坐标 CW_USEDEFAULT, //窗口大小宽 CW_USEDEFAULT, //窗口大小高 NULL, // 父窗口的句柄 NULL, // 窗口菜单的句柄 hInstance, // Windows应用程序的实例句柄 NULL) ; // 创建参数的指针,可以用它访问程序中的数据 //第四步: //第四步:显示窗口,在显示屏上显示窗口(ShowWindow),并给窗口客户区刷上背景颜色(UpdateWindow) ShowWindow (hwnd, iCmdShow) ; UpdateWindow (hwnd) ; //此时窗口已经出现在显示器上等待用户的键盘和鼠标的输入,随时进行相应的处理 //第五步:利用下面的循环,在消息队列中不断解析消息,然后Windows把消息发给窗口过程函数进行相应的处理。 while (GetMessage (&msg, NULL, 0, 0)) //从消息队列中取得消息 { TranslateMessage (&msg) ;//将msg结构传给Windows,进行一些键盘转换 DispatchMessage (&msg) ; //Windows将消息发送给窗口过程函数(WndPro)进行相应的处理 } //上面循环的终止条件是:取得WM_QUIT消息。 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: //当创建一个窗口时,Windows向WndProc发送WM_CREATE return 0 ; case WM_PAINT: //当绘制窗口客户区域时 hdc = BeginPaint (hwnd, &ps) ; GetClientRect (hwnd, &rect) ; DrawText (hdc, TEXT ("Hello, Windows Xp!"), -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) ;//消息的默认处理 }
书上的源码...!
/**//*------------------------------------------------------------ HELLOWIN.C -- Displays "Hello, Windows 98!" in client area (c) Charles Petzold, 1998 ------------------------------------------------------------*/
#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, // window class name TEXT ("The Hello Program"), // window caption WS_OVERLAPPEDWINDOW, // window style CW_USEDEFAULT, // initial x position CW_USEDEFAULT, // initial y position CW_USEDEFAULT, // initial x size CW_USEDEFAULT, // initial y size NULL, // parent window handle NULL, // window menu handle hInstance, // program instance handle NULL) ; // creation parameters 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, Windows Xp!"), -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) ; }
|
|
随笔:5
文章:28
评论:1
引用:0
| 日 | 一 | 二 | 三 | 四 | 五 | 六 |
---|
24 | 25 | 26 | 27 | 28 | 29 | 30 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 1 | 2 | 3 | 4 |
|
公告
Blog里的内容如果没有注明为转载,就是原创文章,需要转载的朋友请注明出处。文章中如有错误,请指出。转载内容如果有侵权行为,请与我联系,----issac_asimoy@qq.com。
常用链接
留言簿(1)
随笔分类(5)
随笔档案(5)
文章分类(28)
文章档案(28)
相册
My World
Study Web
最新随笔
搜索
积分与排名
最新评论
阅读排行榜
评论排行榜
|
|