分享
 
 
 

简单介绍以下c/sdk编程,文中代码来源于别处,注释原创

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

#include

#include "resource.h" //这个头文件的作用就是定义控件等ID的数学值,全部是UINT类型的

#include "generic.h" //头文件。内容见最后面

//2个全局变量

HINSTANCE _hInst; //主程序句柄

HWND _hWnd;//主窗口句柄

char _szAppName[] = "Generic"; //程序名

char _szTitle[] = "Generic Sample Application"; //窗口名

//---------------------------------------------------------------------

//---------------------------------------------------------------------

//系统自动为下面前2个变量分配非0值

int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR lpCmdLine, int nCmdShow)

//第一个是程序当前实例的句柄,第2个是程序前一个实例的句柄

//在32位操作系统中,hPrevInstance的值总为0,因为在32位系统中

//一个程序的不同实例是封装在不同的地址空间(4GB)中的

{

MSG msg;//定义一个消息,MSG是一个windows32位结构体

UNREFERENCED_PARAMETER(lpCmdLine);//避免编译器出错

if (!hPrevInstance)

if (!InitApplication(hInstance))//调用下面函数⑴

return (FALSE);//如果初始化失败,给系统返回一个程序失败:false!

if (!InitInstance(hInstance, nCmdShow))//调用下面函数(2)

return (FALSE);

//程序的主题:得到消息,处理消息,其中如果得到一个消息msg为“EXIT”指令消息的话,循环结束,程序结束

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

{

TranslateMessage(&msg);

DispatchMessage(&msg);

}

return (msg.wParam); //事实上这最后一个msg一定是让程序关闭的msg,msg是一个结构,里面的mParam保存退出的信息

//返回给系统

}

//---------------------------------------------------------------------

//---------------------------------------------------------------------

BOOL InitApplication(HINSTANCE hInstance)//函数⑴,作用是注册程序主窗口

{

WNDCLASS wc;//wc是一个结构,含有11个参数,是11个,不是10个!

//这下面写了10个,还有一个不知道哪去了,具体请自己去查WIN21APIs,函数名字creatwindow()

wc.style = CS_HREDRAW | CS_VREDRAW;//窗口的样式

wc.lpfnWndProc = (WNDPROC)WndProc; //调用函数(3),定义这个窗口怎么样处理对应的消息

wc.cbClsExtra = 0;

wc.cbWndExtra = 0;

wc.hInstance = hInstance;//程序进程的句柄

wc.hIcon = LoadIcon(hInstance, "jjhouricon");//图标句柄

wc.hCursor = LoadCursor(NULL, IDC_ARROW);//鼠标外观句柄

wc.hbrBackground = GetStockObject(WHITE_BRUSH); //程序背景颜色刷子

wc.lpszMenuName = "GenericMenu"; //菜单名

wc.lpszClassName = _szAppName;//程序名

return (RegisterClass(&wc));//注册

}

//---------------------------------------------------------------------

//---------------------------------------------------------------------

BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)//函数(2)

{

_hInst = hInstance;

//产生窗口,但是不显示出来

_hWnd = CreateWindow(

_szAppName,//程序名

_szTitle,//窗口名

WS_OVERLAPPEDWINDOW,

CW_USEDEFAULT,

CW_USEDEFAULT,

CW_USEDEFAULT,

CW_USEDEFAULT,

NULL,

NULL,

hInstance,

NULL

);//这些具体的值的意义可以从WIN32API中获得

//确认

if (!_hWnd)

return (FALSE);

//显示窗口

ShowWindow(_hWnd, nCmdShow);

UpdateWindow(_hWnd);

return (TRUE);

}

//---------------------------------------------------------------------

//---------------------------------------------------------------------

LRESULT CALLBACK WndProc(HWND hWnd,UINT message, WPARAM wParam, LPARAM lParam)//函数(3)

{

int wmId, wmEvent;

switch (message)

{

case WM_COMMAND://普通的命令。可以简单理解为鼠标单击菜单所产生的消息

wmId = LOWORD(wParam);//wParam是一个32位的。这里得到32位中的底16为所保存的值----消息的ID

wmEvent = HIWORD(wParam);

switch (wmId) {

case IDM_ABOUT:

DialogBox(_hInst,

"AboutBox",

hWnd,

(DLGPROC)About //调用函数(4)

);//产生关于对话框

break;

case IDM_EXIT:

DestroyWindow (hWnd);

break;

default://默认的结束程序的方式。调用这个函数让系统来关闭这个函数

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

}

break;

case WM_DESTROY://普通的关闭程序的消息,当主函数中while循环中得到这个消息后,循环结束,程序结束 

PostQuitMessage(0);

break;

default:

return (DefWindowProc(hWnd, message, wParam, lParam));//同上

}

return (0);

}

//---------------------------------------------------------------------

LRESULT CALLBACK About(HWND hDlg,UINT message,WPARAM wParam, LPARAM lParam)//函数(4)

{

UNREFERENCED_PARAMETER(lParam); //作用同上

//原理同上

switch (message)

{

case WM_INITDIALOG:

return (TRUE);

case WM_COMMAND:

if (LOWORD(wParam) == IDOK|| LOWORD(wParam) == IDCANCEL)

{

EndDialog(hDlg, TRUE);//结束对话框

return (TRUE);

}

break;

}

return (FALSE);

}

//---------------------------------------------------------------------------

//附件: generic.h内容

/*

BOOL InitApplication(HANDLE);

BOOL InitInstance(HANDLE, int);

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

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

*/

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有