windows编程

dos,win32,MFC区别:

dos :只能调用cruntime 函数,不能调用win32 api.程序进入点为 main。

 


win32 console :可以调用 cruntime和win32,但是没有GUI的函数.程序进入点为CreateProcess起进程,

                         然后CreateThread起线程再 调用WinMain。


MFC:基于cruntime和Win32 API的applicationframework和util。

 

 

 

win32和MFC都是基于消息的,OS将消息放入进程队列中,应用程序来读取。

 

进队消息:Windows放入消息队列中的由应用程序调用的消息(如:WM_LBUTTOMDOWN)。

不进队消息:不放入消息队列中,由OS直接调用窗口过程函数的消息(如:WM_CREATE,WM_SHOWWINDOW)。

无论进队与否还是由窗口函数来处理。

用户的自定义消息要送给消息处理函数时就要调用SendMessage后让Windows调用消息处理函数。

 

windows编程主要是3个模块  KERNEL32.dll               USER32.dll                                GDI32.dll

window.h总体包含的头文件   WINBASE.h(内核函数)   WINUSER.h(界面,用户接口函数)    WINGDI.h(图形绘制函数)

                                           WINDEF.h(基本类型定义和win32要使用的数据结构)   WINNT.h(unicode类型定义)

 

要使用标准的c函数就要自行包含c的头文件。

 

 

窗口类是WNDCLASS的数据结构,用于注册;窗口句柄窗口类的一个实例(一个32位的数字);一个窗口类可以注册多个窗口句柄实例。

 

如果要自己绘制控件,则在创建控件子窗口时的要设置一个BS_OWNERDRAW,则当控件子窗口要重画时父窗口的处理函数会收到WM_DRAWITEM消息,在这个地方处理重绘。

 

MFC的消息机制:WM消息响应函数是虚方法,子实现了就子方法处理,子没有实现由继承的方法处理。

                       VM是是虚方法(拦截器方法),子实现了就子方法处理,子没有实现由继承的方法处理。

                       ON_COMMAND处理方法一般是一个类单独的方法。

 

 

 

你可能感兴趣的:(编程,windows,dos,OS,mfc)