例如,我通过双击其可执行文件从Windows资源管理器启动基于CDialog的MFC应用程序。它通常在屏幕中央显示对话窗口。但如果我将Windows资源管理器窗口移动到辅助监视器并在那里双击它,它的窗口仍显示在主监视器中。如何让它在监视器中显示应用程序的启动位置?附言。对话框窗口从InitInstance显示如下:CTestMFCDlgdlg;m_pMainWnd=&dlg;INT_PTRnResponse=dlg.DoModal(); 最佳答案 好的。我知道了。没关系。谁有兴趣,MFC没有多显示器的概念。因此需要重写居中方法:vo
我有一个CPropertySheet。当我使用ModifyStyle(DS_MODALFRAME,WS_POPUP|WS_THICKFRAME|WS_MAXIMIZEBOX);在OnCreate处理程序中一切正常。创建的窗口按预期运行并且可以调整大小。当我使用相同的代码时,在CPropertySheet::OnInitDialog中稍晚一点,此代码只具有显示正确框架的效果,当我拖动到窗口边框上时光标也会发生变化。但是没有调整大小的功能。在OnInitDialog中使用CDialog时也会发生同样的情况。某些标志在创建窗口后无法更改的接缝。是否有关于此问题的更多信息?
我有一个带有IWebBrowser2的MFCCDialog。我进入了一个包含HTML文本区域的页面,我可以输入文本,但退格键不会删除它。 最佳答案 当在InternetExplorer中承载一个编辑控件子类的ATLActiveX控件时,当焦点设置到编辑控件时按BACKSPACE键会导致InternetExplorer导航到上一个网页。如果在带有控件的网页之前没有网页,退格键功能正常。当用户单击子类控件时,该控件未激活UI。这意味着任何加速键都由InternetExplorer框架处理。控件永远不会更改以处理BACKSPACE加速键。
有必要关闭所有对话框控件的默认字体的“ClearType”属性。可以通过设置对一个控件执行此操作logfont.lfQuality=ANTIALIASED_QUALITY有很多关于如何对模态对话框(http://neelaakash.wordpress.com/2007/12/31/change-default-dialog-font-of-cdialog/和其他)执行相同操作的建议,但对于非模态对话框(使用new和Create(...)方法实例化)应该这样做。我自己尝试这样做:覆盖'Create'方法,并修改对话框模板:BOOLCActivationChildDialogLicens
我已经按照这个问题制作了一个非模态/无模态对话框:Howtodisplayanon-modalCDialog?我在VS2008中使用MFC/C++。与MFC和C++相比,我更擅长C#和.net。我的表单中有一个启动对话框的菜单项。只能打开一个对话框实例。该对话框显示正常。我可以通过单击角落中的X来关闭它,它会在我关闭主窗体时关闭。我遇到的问题是单击X关闭对话框后无法再次打开对话框。我知道这是因为指针永远不会设置回NULL。我在表单的头文件中有这个:CChildDialog*m_pDialog;我在表单的构造函数中有这部分:m_pDialog=NULL;当单击菜单项时,我在菜单项的方法中
谁能告诉我如何在MFC的Visualc++6.0中创建一个非模态对话框并显示它?我写了这段代码:CDialogdialog;if(dialog.init(initializationvalues...))dialog.DoModal();但它阻止我的应用程序显示对话框。我不知道是否有任何方法或其他方法可以做到这一点。谢谢 最佳答案 /*CChildDialogclassisinheritedfromCDialog*/CChildDialog*m_pDialog=NULL;//InvokingtheDialogm_pDialog=ne
谁能告诉我如何在MFC的Visualc++6.0中创建一个非模态对话框并显示它?我写了这段代码:CDialogdialog;if(dialog.init(initializationvalues...))dialog.DoModal();但它阻止我的应用程序显示对话框。我不知道是否有任何方法或其他方法可以做到这一点。谢谢 最佳答案 /*CChildDialogclassisinheritedfromCDialog*/CChildDialog*m_pDialog=NULL;//InvokingtheDialogm_pDialog=ne
在我的应用程序中,我想从不同的线程向对话框发送消息。我想将std::exception派生类引用传递给对话框。类似这样的:try{//dostuff}catch(MyException&the_exception){PostMessage(MyhWnd,CWM_SOME_ERROR,0,0);//sendthe_exceptionorthe_exception.error_string()here}我想在我的对话框中接收消息并显示the_exception.error_string()中的错误LPARAMCMyDlg::SomeError(WPARAM,LPARAM){show_err
在我的应用程序中,我想从不同的线程向对话框发送消息。我想将std::exception派生类引用传递给对话框。类似这样的:try{//dostuff}catch(MyException&the_exception){PostMessage(MyhWnd,CWM_SOME_ERROR,0,0);//sendthe_exceptionorthe_exception.error_string()here}我想在我的对话框中接收消息并显示the_exception.error_string()中的错误LPARAMCMyDlg::SomeError(WPARAM,LPARAM){show_err
MSDN说,对于CDialog.DoModal()函数,如果函数不能创建对话框,返回值为-1。它没有说明在哪种情况下它可能无法创建对话框。对MFC源代码的快速调查表明,如果(LPCDLGTEMPLATE)LockResource(hDialogTemplate)返回NULL,则DoModal函数可能返回-1。由于我的问题在我们的压力测试中无法稳定复现,所以我无法调试程序找到根本原因。这里有人遇到过类似的问题吗? 最佳答案 DoModal()依赖于CreateDialogIndirect()API函数。其堂兄的文档DialogBox(