我有一个SDIMFC应用程序,它的CMainFrame类派生自CFrameWndEx。该应用程序使用CSingleDocument模板连接文档/View/框架。我需要有另一个窗口,其中包含与主窗口View的同一文档相关的View内容。将CMainFrame的另一个实例作为辅助窗口是否正确? 最佳答案 经过一些方法我得出了一个解决方案:第一:在App上有两个CMainFrame实例,其中第二个有一个bool字段来指示它是一个或另一个。这个bool值允许我只在第二个时跳过所有创建的创建,因为我只希望它是一个带有View的矩形。我向CMa
前阵子我写了一个程序,可以让你选择和修改窗口。它使用WindowFromPoint()获取鼠标光标下窗口的句柄,并调用GetWindowText()获取窗口的标题。这很好用。然后我添加了获取列表控件列标题的功能。问题在于,与返回宽度的GetColumnWidth()不同,没有相应的函数来获取标题。相反,获取列标题的标题需要将缓冲区传递给GetColumn()以填充标题。因此,当我将LVCOLUMN结构的pszText成员分配给指向缓冲区的指针并将该结构传递给GetColumn()时,其他进程将指针解释为在其自己的内存空间内。显然这是行不通的。我使用CodeProjectarticle中
我有一个在Release模式下构建的shell扩展,我还生成调试符号和.pdb文件。我将构建上下文菜单扩展.dll文件的visualstudio程序附加到正在运行的explorer.exe进程,当程序附加到explorer进程事件时,我可以在输出窗口中看到,如下所示:'explorer.exe':Unloaded'C:\Windows\System32\mydocs.dll''explorer.exe':Unloaded'C:\Windows\System32\sendmail.dll''explorer.exe':Unloaded'C:\Windows\System32\zipfld
我整个早上都在谷歌搜索,但我找不到我要找的东西。我正在为MFC修改的VisualStudio中创建常规DLL。也就是说在项目向导中,我选择了Win32Project->DLL->MFC我没有只是从向导的主列表中单击MFCDLL,这是所有在线教程都在描述的内容。我的问题很简单。在.cpp文件中,我只需要知道我是否应该实现我的方法(在.h文件中声明)_tmain函数。里面有一条评论说//TODO:codeyourapplicationsbehaviorhere但我不确定这是否是我的实现目标。作为引用,这里是.cpp文件://testmfcdllblah.cpp:Definestheexpo
在将我当前的32位应用程序移植到64位的过程中,我添加了编译器选项/we4302(引用SOQuestionClarification:Porting32to64bit和HansPassant的建议答案),我遇到了ATLMFCInclude的情况文件似乎有指针截断。c:\ProgramFiles(x86)\MicrosoftVisualStudio10.0\VC\ATLMFC\INCLUDE\afxtempl.h(163):errorC4302:'typecast':truncationfrom'CControlBar*'to'long'c:\ProgramFiles(x86)\Micr
我在WTL中有一个GUI窗口,它在CMessageLoop实例内的线程内运行,该实例已添加到应用程序实例并运行。现在,在主GUI的按钮处理程序中,我创建了一个新窗口。单击该按钮并创建窗口并尝试将退出消息发布到主GUI循环后。代码:主窗口,有自己的线程:CMessageLooptheLoop;_MyppModule.AddMessageLoop(&theLoop);if(m_pMyDlg==NULL){m_pMyDlg=newCMyDlg();if(!IsWindow(*m_pMyDlg)){m_pMyDlg->Create(NULL);m_pMyDlg->ShowWindow(SW_S
在我的MFC应用程序中,我试图制作一个类似于Windows7打开文件对话框的窗口,但它浏览的是虚拟/假文件系统。它不需要像素完美,但我希望尽可能与native操作系统对话框保持一致。可能最具挑战性的部分是位于“打开”对话框顶部的地址栏。地址栏控件也位于所有Windows资源管理器窗口的顶部。它显示构成您的路径的文件夹名称。它在鼠标悬停时显示和隐藏按钮(包括有吸引力的淡入淡出动画),在单击名称时更改事件目录,并在单击名称之间的三角形时显示子菜单。这似乎不对应于任何MFC控件(或控件组)。Spy++将其显示为“AddressDisplayControl”,但除此之外我找不到太多文档。有没有
我有使用VS2008编译的Win32MFC应用程序。该应用程序具有TreeConrtol。有一个TVN_ITEMCHANGING处理程序,在处理程序中我强行重新绘制已更改的树项。这是带有SEH处理程序和直接WinAPI调用而不是MFC包装器的代码(这不会影响问题):voidCMainDlg::OnTvnItemChangingMainTree(NMHDR*pNMHDR,LRESULT*pResult){NMTVITEMCHANGE*pNMTVItemChange=reinterpret_cast(pNMHDR);HWNDhTreeCtrl=_ctrlTree.GetSafeHwnd()
我的MFC工程中有一个CListCtrl控件,我不想随时显示横向的ScrollBar。但是垂直的需要正常显示。我用的是VS2010,有解决办法吗? 最佳答案 您可以通过派生您的List控件并拥有类似这样的东西来做到这一点:voidCListCtrlEx::OnNcCalcSize(BOOLbCalcValidRects,NCCALCSIZE_PARAMSFAR*lpncsp){ModifyStyle(WS_HSCROLL,0);CListCtrl::OnNcCalcSize(bCalcValidRects,lpncsp);}或者如果
我使用的是VC6.0。当我右键单击列表框的项目时,我正在尝试编程以显示上下文菜单。但是现在弹出菜单可以显示在ListBox的rect中的任何位置,因为我只能获取ListBox的rect,而我不知道如何获取item的rect。我知道有一个宏ListView_GetSubItemRect似乎可以获取ListView项目的矩形。ListBox是否有类似的方法,或者有没有办法获取ListBox项目的宽度和高度,以便我可以计算矩形?我没有在msdn和google上找到一些有用的信息?谁能给我一些想法?谢谢。我当前的代码:voidMy_OnContextMenu(HWNDhwnd,HWNDhwnd