MFC学习第一天心得!
2011-09-22 19:47
260 查看
MFC学习过程1 #include “stdafx.h” //这是win32编程必不可少的环境参数。必须要添加的,16位的程序就不需要。 #include “windows.h”//这是所有windows程序编写必须的头文件 Int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevstance, LPTSTR nCmdLine, int nCmdShow) //程序的入口函数,lptstr的类型定义在typedef lpwstr ptstr,lptstr; 与(char*)等价指向字符串//的指针LP代表长指针,那是为了与此16位操作系统兼容而已,32位下,其实与p一样,//代表是个指针,str代表的是字符串的意思 //WINAPI与CALLBACK一样类型属于__stdcall压栈顺序(后进先出法,从右至左传入参数)//而几乎所有用到的windowsAPI函数都是_stdcall类型的!C/c++默认的是_cdecl. //_stdcall与_cdecl的区别就是清栈,_stdcall是系统清理,_cdecl是调用者清理。 //CALLBACK和WINAPI还有一个意思,回调函数,用户无法调用这个函数,只有操作系统才//有权力调用这个函数. //WinMain()里面的参数全部是系统返回的. //HINSTNACE hInstance 他的声明是DECLARE_HANDLE(HINSTANCE); 应用程序当前实例句柄 //这里要着重讲一下DECLARE_HANDLE()这个宏他在windef.h里面的定义是如下的: //DECLARE_HANDLE(name) struct name##__{int unused;}; typedef struct name##__ *name //##意思是连接两个子串.打个比方,可能会看得懂点. //DECLARE_HANDLE(HINSTANCE) //最后会变成struct HINSTANCE_{int unused;};,struct HINSTANCE_ *HINSTANCE;看到这,大//家应该搞明白hwnd,hinstance等等句柄啊,实例的内部处理原理了吧,只是我搞不懂,微//软为什么搞得这么复杂,可能是为了封装吧!因为照这个样子,hwnd与hinstance在内部是//一样的,甚至可以通过强制转换让编译器认可. //HINSTANCE hPrevstance 父窗口,win32程序一律为null //LPSTR nCmdLine 命令行参数 //int nCmdShow 显示 { //windows下首先要设计窗口类,然后注册窗口类,创建窗口,最后是显示窗口 WNDCLASS wc;//WNDCLASS 是窗口类,wc是类的对象 ··· ··· ··· ··· //这里是设计窗口类的参数,比如窗口的大小,光标的样式!背景颜色等等。 RegisterClass(&wc);//这里是注册窗口. HWND hwnd;//他的声明是DECLARE_HANDLE(HWND),窗口建立完成后返回的句柄. hwnd=CreateWindow(······)//这里的过程就是创建窗口的过程 If(!hwnd) { MessageBox(NULL,”窗口创建过程错误”,”出错”,MB_OK); Return 0; } ShowWindow(hwnd,nCmdShow) UpdateWindows(hwnd); } |
相关文章推荐
- 第一天前端学习的内容和心得
- VS2010 + MFC 学习心得
- 学习七十一雾央MFC游戏心得,初体验(八)
- JVM学习心得体会 (第一天)
- C++ MFC学习心得(一)
- 南通青鸟第一天学习心得
- 学习七十一雾央MFC游戏心得,初体验(三)
- 学习七十一雾央MFC游戏心得,初体验(六)
- 基于MFC五子棋学习第一天
- C++MFC学习心得(四)——CListBox自绘控件碰到的一个小问题
- mfc学习心得一
- python学习心得-第一天-作业
- MFC 学习心得
- MFC学习心得【画笔字体类】
- 学习七十一雾央MFC游戏心得,初体验(一)
- 努力学习学软件第一天的编程心得
- C++ MFC学习心得(二)
- MFC深入浅出学习心得(每日增加)
- C++MFC学习心得(五)——单文档视图结构分析