vs2008 MFC 开发问题汇总
1、在自定义工具栏时,发现菜单的标题有问题,于是修改工具栏的标题,发现在工具栏创建后调用SetWindowText()根本不起效果。就好象有自动记忆功能一样。解决:
Handle WM_NCPAINT message,重绘非客户区,在其中修改标题就可以了。
CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerOffice2007));
CMFCVisualManagerOffice2007::SetStyle(CMFCVisualManagerOffice2007::Office2007Luna_Blue);
系统将会出现“Cannot load Style”错误!
4 #if !defined _AFXDLL
5 TRACE(_T("/r/nImportant: to enable the Office 2007 look in static
link,/r/n"));
6 TRACE(_T("include afxribbon.rc from the RC file in your
project./r/n/r/n"));
7 ASSERT(FALSE);
8 #endif
int n=3;
str.Format("%03d",n);
今天在Visual Studio 2008中调试某个程序时遇到一个奇怪问题
就是在某个源文件中设置的断点老是无效,提示“当前不会命中断点。源代码与原始版本不同”信息
清理项目、重编项目、重新拷贝原文件都解决不了问题
1)“工具”,“选项”,“调试”,“要求源文件与原始版本完成匹配”去掉勾。我没有用这种方法,总觉得将勾掉不太安全。
2)通过重新格式化出问题的源文件亦可以解决,即在VS2005中选择 “编辑”-“高级”-“设置选定内容的格式”。我用这个方法解决,将源文件全部选定,设置格式即可!
8、oracle10g含有BLOB字段的表用ADO打不开!
用的是微软的那种oracle连接字符串MSDAORA.1!! 要用oracle的才能正常打开含有blob字段的记录集,即用以下这种:
m_pConn->Open(L"Provider=OraOLEDB.Oracle.1;User ID=pkuwh_za;password=a;Data Source=223;Persist Security Info=False",L"",L"",adOpenUnspecified);
Oracle provider for OLE DB 支持BLOB字段,但是对字符数据类型的支持较弱。。比如,如果某个字段为一串的空格的话,读取的时候会出现异常。
Microsoft OLE DB Provider for Oracle 对字符数据类型的支持很强,不会出现上面说的那种情况,唯一的缺点就是不支持BLOB字段。
9、客户端使用oracle10g XE,但是在MFC ADO无法使用连接字符建立连接!
我使用的连接字符串为“Provider=OraOLEDB.Oracle.1;Data Source=XE;Password=****;User ID=sys;Persist Security Info=True”,呵呵,明眼人可能发现我使用的用户名为sys,在网上一阵查找,才知道oracle在程序中是不能用system,sysdba用户连接数据库的。在oracle XE中新建一相应权限的用户,建立连接即可。
10、用PL/SQL进行oracle的备份与恢复很方便。菜单->Tools->export objects即可将需要的各种对象(表、视图、包等)保存。在需要恢复时,只需菜单->Tools->import objects即可。不过我第一次在备份后进行恢复时,没有成功。后来发现,我在备份时,连所属系统的表、视图等一起备份了,在恢复时,是肯定不成功的。在备份时应该用菜单->Tools->export user objects。
11、很长时间没有用Win32 console了,用CL.exe时竞出现了“缺少mspdb80.dll.....”的错误!
在PATH环境变量中添加“C:/Program Files/Microsoft Visual Studio 9.0/Common7/IDE”即可。
12、CVSListBox控件很好,失去焦点并切换切换有如下规律:
1、在任意item之间切换(包括删除、移动),先是失去焦点,即iRow=-1;然后再切换成对应Item;
2、如果使用Browse按钮,在程序中弹出对话框,则控件失去焦点,即iRow=-1;
3、失去焦点并切换是在OnAfterMoveItemDown之前发生,所以必须在移动后重新定位并显示内容。
4、失去焦点并切换是在OnBeforeRemoveItem之后发生,所以必须设置当前的删除状态为真,确保在切换为-1时,不触动保存。
13、从Oracle、SQLServer中取得注释:
最近在研究根据表结构生成Java文件的工具,在取得表的字段时如何取得表的各种信息和注释,这个问题困扰了我,经多方搜寻找到如下资料备用: oracle: user_tab_comments;表注释 user_col_comments;表字段注释 以上两个只能获取自己用户的表的注释信息,如果要访问自己能够访问的其他用户的表,则需要使用: all_tab_comments;表注释 all_col_comments;表字段注释 当然,如果有DBA权限,则可以使用 dba_tab_comments;表注释 dba_col_comments;表字段注释 dba*和all*最好指定owner条件。
补充:
1、关于vs 2008 中MFC 的xp风格问题
stdafx.h添加如下试试:
引用:
#pragma comment(linker,"/manifestdependency:/"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'/"")