vs2008 MFC 开发问题汇总

一、在自定义工具栏时,发现菜单的标题有问题,因而修改工具栏的标题,发如今工具栏建立后调用SetWindowText()根本不起效果。就好象有自动记忆功能同样。解决:
        Handle WM_NCPAINT message,重绘非客户区,在其中修改标题就能够了。
php

        二、网上“ 用VS2008 Feature Pack 修改您现有的Visual C++的程序界面 ”有不少,在用如下在CMainFrame::OnCreate()函数的最后部分,添加代码设定当前界面的风格:
      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
    须要在方案的RC文件中include afxribbon.rc资源。
      三、问题: 关于vs2008 MFC 类库设计程序界面的问题: 我在"菜单资源"中修改了一些菜单的标题,同时又添加了几个菜单项,但在程序编译运行后个人修改没有起做用,菜单没变化!
    VS2008集成了BCG类库,设计的程序容许用户在运行时动态修改菜单项,因此它每次运行后都会记住上次的菜单项,这样你的修改就不起做用了。要解决这个问题,只须要在运行时选择菜单“View|Toolbars|Customize”,而后在对话框中选择Menu标签,而后点击Reset就能够了。
     四、在VS2008 MFC Feature Pack类库设计程序界面时,修改工具条也会出现没法更新的问题。
    和以上同理,只须要在运行时将自定义工具栏的对话框打开,在其中选择toolbars选项卡,点击Reset All按钮便可实现即时更新。
     五、关于工具条隐藏的问题。
    隐藏工具栏用CFrameWndEx的ShowWindow(SW_HIDE)和ShowPane(FALSE, ...)都可。
    若是程序开始就须要将某个工具条tool隐藏,在OnCreate()中创建工具条后(tool.CreateEx),不能习惯用DockPane(&tool);不然,不管如何这个工具条将会显示你Dock的位置上。
   6、整数转换为字符串,不够前面补0,如3转换为字符串时为"003"。
     CString   str;   
    int   n=3;   
    str.Format("d",n);

   今天在Visual Studio 2008中调试某个程序时遇到一个奇怪问题html

   就是在某个源文件中设置的断点总是无效,提示“当前不会命中断点。源代码与原始版本不一样”信息数据库

   清理项目、重编项目、从新拷贝原文件都解决不了问题安全

   1)“工具”,“选项”,“调试”,“要求源文件与原始版本完成匹配”去掉勾。我没有用这种方法,总以为将勾掉不太安全。oracle

   2)经过从新格式化出问题的源文件亦能够解决,即在VS2005中选择 “编辑”-“高级”-“设置选定内容的格式”。我用这个方法解决,将源文件所有选定,设置格式便可!ide

  八、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字段。
spa

  九、客户端使用oracle10g XE,可是在MFC ADO没法使用链接字符创建链接!.net

  我使用的链接字符串为“Provider=OraOLEDB.Oracle.1;Data Source=XE;Password=****;User ID=sys;Persist Security Info=True”,呵呵,明眼人可能发现我使用的用户名为sys,在网上一阵查找,才知道oracle在程序中是不能用system,sysdba用户链接数据库的。在oracle XE中新建一相应权限的用户,创建链接便可。

 十、用PL/SQL进行oracle的备份与恢复很方便。菜单->Tools->export objects便可将须要的各类对象(表、视图、包等)保存。在须要恢复时,只需菜单->Tools->import objects便可。不过我第一次在备份后进行恢复时,没有成功。后来发现,我在备份时,连所属系统的表、视图等一块儿备份了,在恢复时,是确定不成功的。在备份时应该用菜单->Tools->export user objects。

 十一、很长时间没有用Win32 console了,用CL.exe时竞出现了“缺乏mspdb80.dll.....”的错误!

   在PATH环境变量中添加“C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE”便可。

 十二、CVSListBox控件很好,失去焦点并切换切换有如下规律:

一、在任意item之间切换(包括删除、移动),先是失去焦点,即iRow=-1;而后再切换成对应Item;
二、若是使用Browse按钮,在程序中弹出对话框,则控件失去焦点,即iRow=-1;
三、失去焦点并切换是在OnAfterMoveItemDown以前发生,因此必须在移动后从新定位并显示内容。
四、失去焦点并切换是在OnBeforeRemoveItem以后发生,因此必须设置当前的删除状态为真,确保在切换为-1时,不触动保存。

1三、从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条件。

补充:

一、关于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='*'\"")

相关文章
相关标签/搜索