一.int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR szCmdLine, int nCmdShow) 四个参数: hInstance:程序当前实例的句柄(handle to current instance),以后随时可以用GetModuleHandle(0)来获得 hPrevInstance:前一个实例的句柄(handle to previous instance),在Win32中,每一个进程都有一个…
#include <windows.h> #include <mmsystem.h> LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM); //声名消息处理函数(处理windows和接收windows消息) //hInstance:系统为窗口分配的实例号,2和3忘了.4是显示方式 int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR szCm…
有时候想写个几十kb的小程序,MFC实在是太大了,Win32有时又太麻烦,怎么办呢?用ATL写会更方便和轻量级一些 ATL和MFC不同的是,ATL并没有强制性封装WinMain函数,仅封装了WndProc,所以使用ATL写Windows程序有很高的自由度 ATL的窗口架构是这样的—— [两个底层封装类] CWindow 窗口句柄和API封装类 只封装了hWnd窗口句柄和与之有关的WinAPI,CWindow和hWnd可以方便地进行转换. CMessageMap 消息映射接口 该基类有一个待实现的…
编写窗口程序的步骤:    1 定义WinMain函数    2 定义窗口处理函数–自己定义处理消息    3 注册窗口类(往OS写入数据)    4 创建窗口 (在内存中创建窗口)    5 显示窗口(根据内存中对于窗口的描述信息,在显示器中绘制窗口)    6 消息循环(提取/翻译/派发)    7 消息处理 #include "stdafx.h"HINSTANCE g_hInstance = 0;//窗口处理函数LRESULT CALLBACK WndProc( HWND hWn…
一.相关结构体和变量 重要的uCGUI系统全局变量 NextDrawWin                      下一个需要重绘的窗口句柄 WM__NumWindows       系统当前的总共窗口总数 WM__NumInvalidWindows   系统当前无效的窗口总数,这些窗口都需要重绘的 WM__FirstWin                    系统第一个窗口的句柄,默认的就是桌面窗口,桌面窗口的句柄就是1.在创建桌面窗口的时候,会将桌面窗口的句柄,付给该全局变量,该动作发生…
MFC应用程序中处理消息的顺序 1.AfxWndProc()      该函数负责接收消息,找到消息所属的CWnd对象,然后调用AfxCallWndProc 2.AfxCallWndProc()  该函数负责保存消息(保存的内容主要是消息标识符和消息参数)供应用程序以后使用,然后调用WindowProc()函数 3.WindowProc()      该函数负责发送消息到OnWndMsg()函数,如果未被处理,则调用DefWindowProc()函数 4.OnWndMsg()        该函…
一:C#在父窗口中调用子窗口的过程(无法访问已释放的对象)异常 其实,这个问题与C#的垃圾回收有关.垃圾回收器管 理所有的托管对象,所有需要托管数据的.NET语言(包括 C#)都受运行库的 垃圾回收器的制约.垃圾回收器可以确定运行垃圾回收的最佳时间,自动进行垃圾回收.然而垃圾回收的一个产物是:C#对象没有 确定性毁 坏.所以会出现子窗口对象已被销毁,但又不为null,故出现访问时产生“未处理 ObjectDisposedException”异常 如下操作: 二:不存在从对象类型System.Wi…
C#在父窗口中调用子窗口的过程: 1. 创建子窗口对象 2. 显示子窗口对象   笔者的程序中,主窗体MainFrm通过菜单调用子窗口ChildFrm.在窗体中定义了子窗口对象,然后在菜单项点击事件中,加入了如下代码来创建和显示子窗口:   Private childFrm myChildFrm = null; //定义子窗口对象private void OpenChildFrmToolStripMenuItem_Click(object sender, EventArgs e){       …
目录 窗口关闭过程 调用流程 关闭文档 删除视图 删除文档对象 关闭Frame App清理 多文档窗口的关闭 多文档父窗口关闭 多文档子窗口关闭 窗口的正式删除 窗口关闭过程总结 如何手工删除view 窗口关闭过程 调用流程 用户点击窗口的关闭按钮后,Win32系统会向当前的Frame对象发送WM_CLOSE消息,此时会进入到Frame的wxFrame::MSWWindowProc函数进行处理: WXLRESULT wxFrame::MSWWindowProc(WXUINT message, W…
创建窗口步骤: (1)注册窗口类(RegisterClassEx) (2)创建窗口(CreateWindowEx) (3)在桌面显示窗口(ShowWindow) (4)更新窗口客户区(UpdateWindow) (5)进入无限的消息获取和处理的循环:获取消息(GetMessage);分派消息至窗口函数处理(DisPatchMessage); 如果是WM_QUIT,函数(GetMessage)返回False,消息循环结束,程序退出. 注册窗口类需要初始化一个窗口类结构,将其写成一个函数如下: AT…