MFC框架间联立的方法
来源:互联网 发布:记录销售app软件 编辑:程序博客网 时间:2024/04/30 18:52
一:句柄关联性;
①接获取句柄或者窗口对象:Findwindow和FromHandle
②GetWindow加上FromHandle(hWnd);联立获取、
③获取主窗口句柄:
CWnd *wnd = AfxGetMainWnd();
HWND hwnd =wnd->GetSafeHwnd();
④获取当前最上层窗口的句柄:
HWND mainHwnd = ::GetForegroundWindow();//获取当前topmost的窗口句柄
⑤附加一些其它函数:
FindWindow //这个估计会拖慢程序的运行速率
FindWindowEx
WindowFromPoint//获得当前鼠标光标位置的窗口HWND
GetActiveWindow 取当前活动窗口句柄
AfxGetMainWnd 取主窗口句柄//获得主框架窗口指针(任何时候都可以用,只要是MFC程序中)
GetForegroundWindow取前台窗口句柄
FindWindow寻找参数指定的窗口
EnumWindow枚举窗口
(二)MFC【MFC AppWizard(exe)框架】中各个框架间指针关联性:
一、一般的框架(this间的使用):<注意获取到的指针进行强制类型转换>
理解 m_pMainWnd, AfxGetApp(),AfxGetMainWnd() 的意义<最终归结首者>
1)获得Doc指针GetDocument();一个视只能有一个文档。
2)获得MainFrame指针CWinApp 中的 m_pMainWnd变量就是MainFrame的指针,也可以: AfxGetMainWnd
3) 获得MainFrame指针
CMainFrame*pMain=(CmaimFrame *)AfxGetApp()->m_pMainWnd;
4) 获得View(已建立)指针
CMainFrame*pMain=(CmaimFrame *)AfxGetApp()->m_pMainWnd;
CyouView*pView=(CyouView *)pMain->GetActiveView();
5) 获得当前文档指针
CDocument *pCurrentDoc =(CFrameWnd *)m_pMainWnd->GetActiveDocument();
6) 获得状态栏与工具栏指针
CStatusBar *pStatusBar=(CStatusBar*)AfxGetMainWnd()-
>GetDescendantWindow(AFX_IDW_STATUS_BAR);
CToolBar *pToolBar=(CtoolBar *)AfxGetMainWnd()->GetDescendantWindow
(AFX_IDW_TOOLBAR);
7) 如果框架中加入工具栏和状态栏变量还可以这样
(CMainFrame*)GetParent()->m_wndToolBar;
(CMainFrame*)GetParent()->m_wndStatusBar;
8) 在Mainframe获得菜单指针
CMenu*pMenu=m_pMainWnd->GetMenu();
9) 在任何类中获得应用程序类
AfxGetInstanceHandle得到句柄,AfxGetApp 得到指针
(三)MFC中句柄、指针、ID之间的转换使用
win32直接操作的是句柄HANDLE,每个句柄就对应windows窗口,而vc对HANDLE进行类封装,间接操作的都是HANDLE,现在句柄只是类的一个成员变量。
从句柄到指针
CWnd*pWnd=CWnd::FromHandle(hWnd); //a temporary CWnd object is
created //andattached.
pWnd->Attach(hWnd);//Attaches a Windows window to a CWnd object
从指针到句柄
HWNDhWnd=pWnd->GetSafeHandle(); //使用GetSafeHwnd函数取得程序所在窗口类的句柄
hWnd=pWnd->m_hWnd;
SDK编程中窗口ID,句柄,指针三者相互转换函数
ID--HANDLE--HWND三者之间的互相转换
id->句柄-----------hWnd =::GetDlgItem(hParentWnd,id);
id->指针-----------CWnd::GetDlgItem();
句柄->id-----------id = GetWindowLong(hWnd,GWL_ID);
句柄->指针--------CWnd*pWnd=CWnd::FromHandle(hWnd);
指针->ID----------id = GetWindowLong(pWnd->GetSafeHwnd,GWL_ID);
GetDlgCtrlID();
指针->句柄--------hWnd=cWnd.GetSafeHandle()or mywnd->m_hWnd;
HICON->ID--------HICONhIcon = AfxGetApp()->LoadIcon(nIconID);
HICON hIcon =LoadIcon(AfxGetApp()-
>m_hInstance,MAKEINTRESOURCE(nIconID));
- MFC框架间联立的方法
- oracle 多表联立查询方法【转】
- MFC框架的一种理解方法
- MFC中获取【文档】【视图】【框架】【应用程序】指针的方法
- MFC 框架的理解
- OpenGL的MFC框架
- 【在 MFC 框架中,OpenCV与MFC窗口绑定方法】
- MFC程序的基本框架
- MFC程序框架的剖析
- MFC程序框架的剖析
- MFC程序框架的剖析
- 稍微搞清MFC的框架
- MFC程序框架的剖析
- MFC框架的创建过程
- MFC框架下的程序设计
- MFC的 文档 视图 框架
- MFC程序框架的剖析 .
- MFC框架下的OPENGL
- 冒泡排序,选择排序,插入排序
- jupyter notebook即原来的Ipython notebook的使用方法
- 深入理解C++的动态绑定与静态绑定的应用详解
- socket阻塞与非阻塞,同步与异步、I/O模型
- Java的Integer与int互转
- MFC框架间联立的方法
- python magic文档
- 输入一个字符串 在输入帧头 帧尾 取合法帧 (标志位的使用)
- js知识点总结
- JDK中rmi包下的类
- js判断数组或对象中的key是否存在
- windows核心编程-如何获取进程命令行信息
- phpcms model.class.php分析
- 关于Ecshop小京东,手机管理后台,增加楼层右边分类不显示的问题