因为缺少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
| 日 | 一 | 二 | 三 | 四 | 五 | 六 |
---|
23 | 24 | 25 | 26 | 27 | 28 | 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 | 5 |
|
公告
Blog里的内容如果没有注明为转载,就是原创文章,需要转载的朋友请注明出处。文章中如有错误,请指出。转载内容如果有侵权行为,请与我联系,----issac_asimoy@qq.com。
常用链接
留言簿(1)
随笔分类(5)
随笔档案(5)
文章分类(28)
文章档案(28)
相册
My World
Study Web
最新随笔
搜索
积分与排名
最新评论

阅读排行榜
评论排行榜
|
|