使用CFiledialog时,返回主界面标题栏变灰~什么情况?

KID_coder 2011-02-14 12:30:05
vs2010下~ 就简单的两条语句~

CFileDialog dlg(TRUE);
dlg.DoModal();

按确定或取消后返回主界面的标题栏和菜单栏变灰(即失去焦点的状态),但是菜单可以操作


CFileDialog dlg(TRUE);
if ( IDOK==dlg.DoModal() )
{
MessageBox(_T("OK"));
}

如果这样的话在消息框按确定后主界面就正常~
是vs2010的bug吗?
...全文
262 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
GNU之歌 2012-05-11
  • 打赏
  • 举报
回复
参考这个微博:
http://hi.baidu.com/%BB%AA%C4%CF%D0%A1%D1%BC/blog/item/708a6913ee5d8ecdf6039e64.html


void CLEDImage::OnBtnLoadPicFile()
{
CString str = _T("jpgjpegJPGJPEGBMPbmp");

CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,NULL,theApp.GetMainWnd()->GetWindow (GW_HWNDPREV),NULL);

或者:// CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,NULL,this,NULL);

IDOK == dlg.DoModal())
{
if (-1 !=str.Find(dlg.GetFileExt()))
{
return;
}

PicProccess(dlg.GetPathName());
ShowPic();
}
SetFocus();
}
GNU之歌 2012-05-11
  • 打赏
  • 举报
回复
搜索CFileDialog 失去焦点 搜着这个帖子啦
xujinjinxu 2011-07-05
  • 打赏
  • 举报
回复
请问楼主这个问题怎么解决的?我是新手,最近也碰到这个问题,烦死了
jinpeng_best 2011-06-04
  • 打赏
  • 举报
回复
你是不是使用了CDialogEx?用回CDialog就OK了
KID_coder 2011-02-14
  • 打赏
  • 举报
回复
回ls的~
1l vs08不会~ vs2010用单文档或多文档建立项目也不会,用对话框建立项目就出现那样的情况

2l父窗口句柄传进去也是一样的情况~

3l这样给人的感觉不好嘛~
xiaohuh421 2011-02-14
  • 打赏
  • 举报
回复
这有什么bug不bug的,就是失去焦点而以,有什么影响吗?
手机写程序 2011-02-14
  • 打赏
  • 举报
回复
把父窗口句柄在构造函数里传进去呢?
疯狂石头_ 2011-02-14
  • 打赏
  • 举报
回复
vc6是不会,你试试其他的vs看看
手机写程序 2011-02-14
  • 打赏
  • 举报
回复
SetForegroundWindow呢?
KID_coder 2011-02-14
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 eyey1 的回复:]
那自己SetActiveWindow吧。
[/Quote]

CFileDialog dlg(TRUE, _T("mdb"), _T("ExamSystemDatabase.mdb"), OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,_T("Access Database(*.mdb)|*.mdb|All Files(*.*)|*.*||"), this );
if ( IDOK==dlg.DoModal() )
{
MessageBox(_T("OK"));
}
SetActiveWindow();

这样还是出现一样的情况~
vann1982 2011-02-14
  • 打赏
  • 举报
回复
添加一个 setfocus 好了
  • 打赏
  • 举报
回复
没有焦点了 应该是 如果这样都出bug 微软也太熊了吧
手机写程序 2011-02-14
  • 打赏
  • 举报
回复
那自己SetActiveWindow吧。
qiuxin425 2011-02-14
  • 打赏
  • 举报
回复
设置一个焦点给父窗体
1,pic_open.zip带位图预览的打开文件对话框(4KB)2,bmpdlg.zip一个位图对话框类 (11KB)3,folder.zip只显示文件夹信息的文件对话框(2KB)4,dir_pic.zip文件目录搜集工具对话框(42KB)5,splash.zip通过自己的线程在Splash对话框中显示文字(136KB)6,res_dlg.zip大小可调的对话框(21KB)7,splitter.zip可变的分割视图(58KB)8,anicon1.zip在窗口的标题条上显示动画图标演示程序(47KB)9,anicon2.zip在窗口的标题条上显示动画图标(2KB)10,simple.zip一般用途的分隔器类(43KB)11,outlook.zipOutLook风格的分隔条(59KB)12,appbar1.zip实现桌面的工具条(AppBar)(12KB)13,appbar2.zip实现桌面的工具条演示程序(AppBar)(88KB)14,trayicon1.zip屏幕保护托盘图标(SDK版本)(27KB)15,trayicon2.zip屏幕保护托盘图标(MFC版本)(30KB)16,cj60lib.zipMFC扩展界面库(VC6升级版)(936KB)17,devstudio.zipVisual Studio风格的用户界面(132KB)18,explorer.zipVisual Studio风格的用户界面(213KB)19,outlook1.zipOutLook风格的用户界面(134KB)20,Ccaption.zip一组用于定制窗口标题的类(36KB)21,Ccaption2.zip一组用于定制窗口标题的类演示程序(79KB)22,treectrl1.zipDirTreeCtrl--显示文件夹和文件演示程序(56KB)23,treectrl2.zipDirTreeCtrl--显示文件夹和文件(6KB)24,menutip.zip实现菜单的工具提示(33KB)25,menubar1.zipDevStudio样式的泊位菜单条演示程序(不用MSIE)(58KB)26,menubar2.zipDevStudio样式的泊位菜单条(不用MSIE)(27KB)27,propbox1.zip实用的属性列表框(5KB)28,propbox2.zip实用的属性列表框演示程序(25KB)29,cchecklist.zip一个多层次的CCheckListBox(18KB)30,popchild.zip 在Popup和Child窗口之间转化(43KB)31,multitop.zip 一个SDI(单文档界面)的应用,通过File菜单中的Create New Frame命令能够创建一个位于顶层的SDI应用,但关闭应用后其它的窗口也将关闭,程序由Visual C++ 5.0开发(30KB)32,picknew.zip 演示如何注册多文档模板且避免MFC自动产生的"New File Type"对话框,程序由Visual C++ 5.0开发,调用了CDocTemplate::OpenDocumentFile()(49KB)33,listbox1.zip一个类似VisualStudio样式的列表框类(17KB)34,listbox2.zip一个类似VisualStudio样式的列表框类演示程序(50KB)35,custfile.zip 这个例子能够在CFileDialog中增加一对按纽,需要使用Visual C++ 6.0(23KB)36,icondlg.zip 这是一个从资源DLL中选取图标的对话框(12KB)37,Modal.zip 创建一个模式的窗口(38KB)38,dock_menu.zip 演示如何实现DevStdio中的菜单风格,值得研究 COOL(157KB)39,tooltip.zip 可以多行显示的提示条,且颜色可变(32KB)40,ntray.zip 你想知道拨号网络连通后的动态小图标(Tray Icons)是怎么实现的吗?这个例子可以告诉你一切 COOL(17KB)41,w95tray.zip Windows95 Tray Icon的例子(9KB)42,startmenu.exe 修改Start菜单(27KB)43,splits.zip 这个由Visual C++ 5.0开发的程序演示如何管理View中的切分窗口,用到了CSplitterWnd::DeleteView()和CSplitterWnd::CreateView()等成员函数(35KB)44,swt.zipDOS下仿WIN95界面及图标编辑器源程序(498k C&ASM 作者:添翼虎)(499KB)45,menutest.zip定制WIN95图形菜单演示程序(12KB)46,toolbar1.zip在ToolBar中嵌入CListBox(39KB)47,fromto.zip从一图退到另一图(54KB)48,cj60libsrc.zip界面开发库Cj60Lib的源程序(268KB)49,password.zip 拖动放大镜到密码输入框能得到密码的内容 COOL(15KB)50,ProperWnd.zip 属性页放置在窗口的指定位置(58KB)51,pushpin.zip在属性页的左边加入一个图钉按纽,熟悉Microsoft Developer Stdio的朋友一定很熟悉(16KB)52,apibrow.zip这个例子使用公用控制回调在一个CListView中管理CListCtrl控制,这个例子用于分析了一些以逗号为分割符的文本文件,例如在你的\MSDEV\LIB(VC5.0在DevStudio\VC\Lib)目录下的Win32Api.CSV就是这样的文件(16KB)53,scrl.zip这是一个由Visual C++ 5.0开发的基于对话框的应用,它演示如何使用CListCtrl::Scroll()函数,它是CListView的report方式的一个子集(14KB)54,treelist1.zip显示资源管理器风格的目录树结构的例子(64KB)55,list_menu.zip 在ToolBar中嵌入CListBox,看起来像图形菜单(39KB)界面的类库(165KB)60,cj601.zip类似于Developer Studio,Explore界面的类库(95KB)61,cj602.zip类似于Developer Studio,Explore界面的类库(100KB)62,fileNew.zip文件更新事件类演示程序(37KB)63,CfileNew.zip文件更新事件类(4KB)64,outbar.zip类似OutLook左边按钮条的控件(163KB)65,waitdialog.zip等待对话框(22KB)66,coolmenu.zipOffice 97风格菜单实现(298KB)67,dirpk.exe目录选择对话(78KB)68,docktest.zip演示Docking Window(220kb)69,drivevie.zip查看系统安装的驱动器(34kb)70,enhstbar.zip在状态条上显示按钮和进度指示条(88kb)71,fully.zip全屏幕显示窗口例子程序(42kb)72,icondial.zip在对话框内显示图标列表(12kb)73,mfccmd.zip多重Undo/Redo实现(90kb)74,mfcdde.zipDDE实例(53kb)75,splasher.zip启动屏幕程序(47kb)76,toolbar.zip一个工具条的例子(174kb)77,vwrplc32.exe文档视图结构实例(42KB)78,ModalWin.zip一个多文档的例子(1880kb)79,HTMViewer.ziphtml文件浏览器(1870kb)80,picwin.zip给任意窗口添加背景(2KB)81,DynCon.zip动态改变对话框的大小, 对话框中的控件相应改变(166KB)82,tabstatus.zip在多文档应用程序的状态条中加入子窗口的列表, 使程序的状态条有点像Windows 95的任务条(62KB)83,jpeg.zip操作JPEG的库和源程序(390KB)84,dibimage.zip这个例子功能强大,能够以多种方式处理位图文件,强烈推荐 COOL(112KB)85,voicecmd.zip在你的软件中增加语音控制功能COOL(31KB)86,pathDlg.zip能够选择和创建文件夹的对话框(22KB)87,AniDlg.zip想作动态对话框吗?下载一个回去看看吧!(18KB)88,dlgtbar.zip想在对话框中实现浮动工具栏吗?这个代码是你的最佳选择。(19KB)89,DlgMenu.zip教你在对话框中加入菜单,一学就会。(26KB)90,fold.zip使用相当简单,实现文件夹浏览,里面附带英文说明。(4KB)91,CoolAbout.zip支持滚动文字图象,并可用鼠标操作方向。(26KB)92,FullDlg.zip用这类你可以实现全屏对话框,并且你用它可以切换到运行的其它应用程序中。(3KB)93,Colorsrc.zip一个很漂亮的颜色选择类。(157KB)94,TabDialog.zip能将对话框“钉”在屏幕上。(36KB)95,tip_ocx.zip你有没有觉得VC提供的那个Tip of the day控件很简陋?现在好了,Michael Walz带给我们一个Visual Studio那样的界面漂亮的Tip of the day。(26KB)96,PathPic.zip这个类库提供了选择目录的功能,比通用的CFileDialog好多了。(20KB)97,twopanes.zip你有没有想过把通用对话框作为你的窗口的一个View是什么样子的?看看这个例子吧。(9KB)98,bcmenu21.zip可以利用工具条资源,绘制图标菜单。(56KB)99,MENU4_MDI.ZIP可以利用工具条资源,自动绘制图标菜单,MDI版本。(62KB)100,MENU4_SDI.ZIP可以利用工具条资源,自动绘制图标菜单,SDI版本。(61KB)101,toolbar2.zip这个程序演示了如何利用工具栏的新特性,在工具栏中的某个按钮加入下拉式的列表。(28KB)102,avi_bar.zip可以在状态栏里加入一个AVI动画。(34KB)103,outlook.zip这个类库使你可以创建象OutLook那样的切分窗口。(59KB)104,cxysplit.zip这是一个可以在DialogBox中使用的切分类库。(21KB)105,AutoWnd.zip自动切分一个视图,并且高亮显示具有输入焦点的视图。(31KB)106,MyWnd.zip高亮显示具有输入焦点的视图。(2KB)107,bhagat.zip使用一个简单的函数调用就可以在切分视图中动态创建任何类型的新视图。(64KB)108,MSDNWnd.zip这是一个MSDN中的切分窗口的例子,虽不怎么样但已经完整展示了切分操作。对于初学者是一个很好的参考。(37KB)109,rulers.zip使用固定大小的切分窗口(上面、左边部分)在视图中加入标尺。(就象Photoshop中的标尺那样)酷极了。(5KB)110,VisualFx.zip使用固定大小的切分窗口(上面、左边部分)在视图中加入标尺。(就象Photoshop中的标尺那样)酷极了。(88KB)111,infobar.zip定制了一个与outlook,outlook express相同的信息条。(16KB)112,BCGB.zipBCGControlBar的AppWizard,编译运行之后你在new的候就可以选择使用BCGControlBar界面风格了。你最好与BCGControlBar一起下载使用。(215KB)113,sizecbar.zip支持浮动窗体的类库,使用它你可以轻松的做出象Visual Studio那样的界面来。(65KB)114,Coolocx.zip所有你能想到的控件一个都不能少,全都是浮动的效果乃至连Windows通用对话框都浮动。(62KB)115,fullscreen.zip让你轻松实现全屏显示的代码,很简单轻易更可上手,告诉你,全屏你还可以保留工具条。(22KB)116,sys_tray.zip完全封装windows任务栏,使用此类可以轻松操作任务栏图标及其菜单功能。(51KB)117,regester.zip封装有关注册表操作的函数,使你可以轻松添加、删除、修改键或键值。(2KB)118,bmpdraw.zip可以用bmp文件构造该类,不须在设计将bmp文件加入到资源中去。其它功能多多。(5KB)119,split.zip从中可以学习CFile类的使用方法。(39KB)120,strange.zip用VC++实现异形窗口(234KB)121,csh.zip在对话框中实现提示条风格的上下文敏感帮助(75KB)122,whfname.zip从窗口句柄中得到文件名(6KB)
第一课: Windows程序运行原理及程序编写流程,窗口产生过程,句柄原理,消息队列,回调函数,窗口关闭与应用程序退出的工作关系,使用VC++的若干小技巧,stdcall与cdecl调用规范的比较,初学者常犯错误及注意事项。我们通常不必要知晓每一个函数和消息。但另一方面,也不得不记住其中的一部分,否则很难将VC++运用自如。到底该记住哪些,这在我们的课程中都会涉及到。 第二课: C++经典语法与应用,类的编写与应用,构造与析构函数,函数的重载,类的继承,函数覆盖,基类与派生类的构造函数、析构函数先后调用顺序,如何在派生类构造函数中向基类的构造函数传递参数,this成员变量,类型转换的内幕,虚拟函数与奇妙多态性。VC工程的编译原理与过程,将工程中不同的类拆分到不同的原文件中,每一个类由一个.h和.cpp文件共同完成,然后解决头文件重复定义问题,培养了学员良好的编程习惯,也为以后分析MFC Appwizard生成的工程奠定了良好基础。 第三课: 讲述MFC AppWizard的原理与MFC程序框架的剖析。AppWizard是一个原代码生成工具,是计算机辅助程序设计软件,Winmain在MFC程序中是如何从源程序中被隐藏的,theApp全局变量是如何被分配的,MFC框架中的几个类的作用与相互关系,MFC框架窗口是如何产生和销毁的,对窗口类的PreCreateWidow和OnCreate两个函数的着重分析,Windows窗口与C++中的CWnd类的关系。 第四课: 讲述如何运用ClassWizard及对MFC消息响应函数机制的分析,理解发送给窗口的消息是如何被MFC框架通过窗口句柄映射表和消息映射表来用窗口类的函数进行响应的。掌握设备描述表及其封装类CDC的使用,CDC是如何与具体的设备发生关联的,融合具体的画图程序进行分析。如何设置封闭图形的填充刷子(位图画刷与透明画刷的使用)。 第五课: 掌握CDC的文字处理程序的编写,如何产生自定义字体和自定义插入符,熟悉对CString类的使用。通过对kala ok程序的编写,讲解定器的使用和DrawText函数的巧妙运用。讲解如何使用CDC的裁减功能。 第六课: 菜单的工作原理及编写应用,菜单命令消息在MFC框架程序的几个类中的传递顺序和处理过程。标记菜单的实现原理、图形菜单的实现及常犯错误的分析,GetSystemMetrics的应用,快捷弹出菜单的实现方式及其命令响应函数有效范围(与弹出菜单所指定的父窗口有密切的关系,最底层的子窗口具有最优先的处理机会)。 第七课.: 动态菜单的编写,如何让程序在运行产生新的菜单项及如何手工为这些新产生的菜单命令安排处理函数,如何在顶层窗口中截获对菜单命令的处理,更进一步掌握CString类的应用。 第八课.: 对话框用户界面程序的编写,如何向对话框控件联接数据成员及其实现机理,如何向对话框控关联控件类,如何利用对话框类的成员函数向控件发送消息和获取对话框控件的类指针,如何直接利用对话框控件类操纵对话框控件(发送消息和直接调用成员函数)。如何在程序运行产生和销毁控件。对话框控件的几种操作方式的优劣比较分析。 第九课: 如何让对话框上的文本框在程序启动后立即获得焦点,如何利用SetWindowLong改变窗口的回调函数,通过改变文本框的默认回车处理方式进行演示。实现多个输入文本框间通过回车逐一向下传递焦点的另一种巧妙方法(用缺省按钮来处理)。利用SetWindowLong和定器轮回改变窗口的图标。如何实现对话框的部分收缩和展开。如何在对话框程序启动立即隐藏对话框的巧妙实现方式与精妙思想(不能直接在OnInitDialog处理。包括自定义消息的实现) 第十课: 如何制作属性页对话框和向导对话框,融合讲解组合框(如何调整组合框的大小)、列表框、单选按钮、复选按钮 等常用对话框控件的多种使用方法。如何限制用户在不满足设定的条件切换到其他属性页和向导页。 第十一课: 如何修改MFC AppWizard向导生成的框架程序的外观,包括修改标题栏的多种方式及原理,修改图标、光标、背景的两种方法。如何给应用程序增加工具栏和删除工具栏按钮。定制状态栏,在CView中获取状态栏对象的几种方式,在状态栏中添加钟显示(掌握CTime类和静态成员变量和函数的用法),鼠标坐标显示,进度条(窗口产生后立即产生进度条的巧妙思想,不能在OnCreate函数中直接处理,要用到自定义消息的方法)。如何为窗口添加背景位图。 第十二课: 如何使用自定义画笔(颜色,线宽,线形),画刷(形状,颜色)。如何为程序中添加选项菜单和选项设置对话框,如何使用标准颜色对话框,窗口重绘原理,在选项对话框中实现预览功能。实现选项对话框和窗口类中的数据交换。 第十三课: 如何让CDC上输出的文字、图形具有保持功能,元文件设备描述表的使用,CpaintDC与CClientDC的区别与应用,OnPaint与Ondraw在CView中的关系及实现内幕,集合类CObArray的使用,滚动窗口的实现,设备坐标与逻辑坐标的转换。 第十四课: 文件读写,CFileDialog,CFile,fstream,CArchive类的使用与比较。在应用中讲解const char *与char * const的区别,字符串的使用原理,如何使用CString的内存缓冲区。注册表与win.ini文件的读写方式及相关知识点。 第十五课: 如何利用CDocument类的串行化存储功能及MFC框架程序提供的文件打开与保存功能的实现原理。如何实现类对串行化的支持,CObArray的串行化实现内幕。MFC框架程序的几个要类之间如何获得相互的指针引用。 第十六课: 网络程序的编写,Socket是连接应用程序与网络驱动程序的桥梁,Socket在应用程序中创建,通过bind与驱动程序建立关系。此后,应用程序送给Socket的数据,由Socket交给驱动程序向网络上发送出去。计算机从网络上收到与该Socket绑定的IP+Port相关的数据后,由驱动程序交给Socket,应用程序便可从该Socket中提取接收到的数据。网络应用程序就是这样通过socket进行数据的发送与接收的。UDP与TCP的工作原理与编写过程,包含如何在程序中连接库文件,telnet工具软件在编写网络程序中的用途 第十七课: 多线程程序的编写,如何通过互斥来保证多线程的安全。如何利用命名互斥保证只有一份程序实例被运行,结合多线程,网络编程,自定义消息,数据类型转换,如何改变文本框对回车的默认处理方式等技术编写网络聊天程序。 第十八课: 动态连接库程序的编写,库函数的两种输出方式。调用程序对动态连接库的静态连接与动态连接方式,如何利用工具查看动态连接库里的函数,C/C++连接规范中的命名转变问题分析,如何获得动态连接库里的函数 的指针,如何用typedef声明指向函数的指针类型。如何调试动态连接库。 第十九课: ActiveX控件的应用与工作原理,ActiveX控件的编写,如何为控件安排属性,方法,事件,属性页,持久性存储。如何注册控件与取消控件注册。如何测试与调试控件。 第二十课: 综合答疑与一些高深题的介绍,包括如何安装系统钩子函数,dll连接库里的全局变量数据共享问题分析,ADO数据库编程,如何将数据库记录显示在Clistview网格中。 以上内容为作者对课件的初步整理,还有很多课堂上要讲到,但在本大纲中还没有被撰稿的内容,以后将逐渐完善本大大纲。

16,466

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧