
MFC
tg2003
这个作者很懒,什么都没留下…
展开
-
VC编程技巧:IE控件的高级用法
一、如何显示内存中的 HTML 网页 或者因为网页保密的考虑;或者因为软件分发的考虑,有的时候就需要让 IE 或 IE 浏览器控件显示内存或资源中的 HTML 网页。在 MFC 中,CHtmlView::LoadFromResource() 可以显示程序资源中的 HTML 内容。我们都知道MFC的 CHtmlView 其实是对 IWebBrowser2 的一转载 2008-11-29 03:59:00 · 831 阅读 · 0 评论 -
W2A、OLE2A等 ATL 宏会引发 stack overflow。使用时注意。
最近一个转换文件的程序,在转换大批量文件是老是 stack overflow。查来查去。。原来是 在大循环中用了W2A和A2W两个宏。MSDN的 TN059: Using MFC MBCS/Unicode Conversion Macros 有描述,这两个宏在大循环中要有特殊的写法,不然保不准就 stack overflow。Other ConsiderationsDo n转载 2009-07-10 10:30:00 · 1468 阅读 · 0 评论 -
windows窗口样式
/* 窗口样式参考列表:WS_POPUP - 弹出式窗口(不能与WS_CHILDWINDOW样式同时使用)WS_CHILDWINDOW - 子窗口(不能与WS_POPUP合用)WS_MINIMIZE - 最小化状态WS_VISIBLE - 可见状态WS_DISABLED - 不可用状态WS_CLIPSIBLINGS - 使窗口排除子窗口之间的相对区域WS_CLIPCHI原创 2009-07-15 17:53:00 · 1122 阅读 · 0 评论 -
文档/视图下主窗口屏幕居中
在CWinApp类的InitInstance()中添加如下代码 RECT rc; ::GetWindowRect( m_pMainWnd->m_hWnd, &rc ); ::SetWindowPos( m_pMainWnd->m_hWnd, HWND_TOP, ( GetSystemMetrics( SM_CXSCREEN ) - ( rc.right - rc.left ) ) /原创 2009-11-08 03:27:00 · 819 阅读 · 0 评论 -
chm文件无法搜索或者MSDN搜索失效解决方法
可能经常在写程序的时候用F1打开MSDN, 搜索函数的帮助,可是有的时候,会莫名其妙的, 不知道什么原因, 导致MSDN的搜索功能失效, 无论你输入什么, 都搜索不到, 在索引里面, 也看不到任何列表,对于任何的CHM格式的文件都是如此, 能打开就是搜索不到。因为写程序需要, 所以很急, 有一次, 没有找到解决方法, 为此,我重装了MSDN无效, 今天在网上好好找了一番, 终于给我找到了。其原创 2009-11-11 05:37:00 · 2150 阅读 · 0 评论 -
CHtmlView屏蔽右键菜单、禁止显示I型指针以及禁止选择
BOOL CRightView::PreTranslateMessage(MSG* pMsg){ // TODO: 在此添加专用代码和/或调用基类 int nVirtKey; //屏蔽右键菜单 if ((pMsg->message == WM_RBUTTONDOWN) || (pMsg->message == WM_RBUTTONDBLCLK)) return TRUE; //禁止原创 2009-11-11 06:33:00 · 1695 阅读 · 0 评论 -
MFC中CHtmlEditCtrl类与CHtmlView类的使用
工作中需要用到标题中的两个类,有很多不明白之处,在网上查找了些资料,整理后写了两个函数:1、CHtmlView类加载内存中的HTML文本函数(CMyHtmlCtrl是从CHtmlView类继承的),此函数主要是参照了http://www.vckbase.com/document/viewdoc/?id=1472//*************************************转载 2009-11-11 03:37:00 · 1397 阅读 · 0 评论 -
CToolBar按钮自动大小
原始作者: Hwycheng Leo(FlashBT@Hotmail.com)作者网站: http://www.hwysoft.com/chs/作者Blog: http://hwycheng.blogchina.com作者简介: 开发了BitTorrent下载软件 - FlashBT(变态快车), 目前从事企业级的P2P/IM平台的设计和开发工作参考:MSDN转载说明: 你可以自由转载本文章,但原创 2009-11-11 17:46:00 · 2020 阅读 · 0 评论 -
ListBox控件模拟鼠标点击事件
//模拟鼠标点击事件 ::SendMessage( m_hWnd, WM_COMMAND, MAKEWPARAM(IDC_LIST1, LBN_SELCHANGE), (LPARAM) m_RuleNameList.m_hWnd); m_hWnd为ListBox控件的父窗口句柄IDC_LIST1为ListBox控件的IDm_RuleNameList.m_hWnd为ListBox的原创 2009-11-26 03:04:00 · 1880 阅读 · 0 评论 -
获取父窗口指针
CRuleSetDlg *RuleSetDlg = ( CRuleSetDlg* ) this->GetParent();原创 2009-11-28 16:54:00 · 813 阅读 · 0 评论 -
获取对话框的指针--全局变量的使用
假设CMyDialog为对话框类1.先在CMyDialog.cpp中声明一个全局变量CMyDialog* pDlg;2在OnInitDialog()的时候,pDlg = this;3.在别的类使用他的时候,在别的类的Cpp中添加extern CMyDialog* pDlg;4.pDlg->yourfunction();转载 2009-12-31 02:31:00 · 884 阅读 · 1 评论 -
CHttpFile获取网页源码
<br />运行环境:VS2005, ANSI字符集<br /> <br />void CHelloView::OnBnClickedButton1()<br />{<br /> // TODO: 在此添加控件通知处理程序代码<br /> CInternetSession Sess;<br /> CHttpFile *Http = NULL;<br /> CString HtmlSource = "";<br /> char Buf[1024];<br原创 2011-04-02 00:38:00 · 2135 阅读 · 0 评论 -
MFC单文档视图中修改窗体标题、窗体样式
<br />有人说聪明的程序员用Delphi,我承认我并不聪明,虽然Delphi确实很好用,但实在是受不了Delphi的那个编译器,在编辑器中鼠标光标到处乱跑,除非需要的程序是急用,否则我的第一选择不是Delphi。有人也说真正的程序员用VC,当然,我也不得不承认自己压根儿就不是一个程序员,只是一个喜欢编程又上不了档次的准菜鸟,不过我偶尔也会拿起VC玩玩。<br /> <br />在Delphi中要画一个界面,只需要鼠标一拖一拉就搞定了,而VC呢?让我们来画一个简单的界面吧!界面很简单,一个按钮,一个支持多原创 2011-04-02 02:22:00 · 2328 阅读 · 0 评论 -
MFC单文档视图拆分窗口
第一步:准备2个视图类(如CTViewOne, CTViewTwo)第二步:在CMainFrame类的头文件中添加数据成员变量://MainFrm.hprotected: CSplitterWnd m_wndSplitter;第三步:重载CMainFrame类的OnCreateClient函数:BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT l原创 2015-05-03 22:45:34 · 1950 阅读 · 0 评论 -
CString和wstring互转
CString转std::wstringstd::wstring str = filename.GetString();std::wstring转CStringCString str( filename.c_str() );原创 2009-07-09 09:32:00 · 20056 阅读 · 1 评论 -
vc2005 中 CString转化int,int 转化CString
CString转int方法:CString h;int a=_ttoi(h); int转化CString方法:int a=1263;CString h;h.Format(_T("%d"),a);原创 2009-07-04 16:31:00 · 547 阅读 · 0 评论 -
VC CListCtrl控件的使用方法
在VC中使用控件一直是件让我头痛的事件,从控件的创建到控件的操作管理,都得写一大堆代码,相比于Delphi/VB,实在是麻烦多了。其实在之前学习SDK的时候,就有想过专门花点儿时间来学习VC中控件的使用,但一直没空。最近准备写一个小工具,要用到ListCtrl控件,所以又不得不好好的恶补一翻。我是在MFC的对话框模式下使用CListCtrl控件的,其实不管在SDK或文档/视图模式下,VC控件的使用原创 2009-04-09 18:23:00 · 7364 阅读 · 2 评论 -
MFC中实现自绘菜单
为了实现菜单的自绘,花了我几个小时,其实真正解决后又发现很简单。实现菜单的自绘只需要三个步骤:第一步:将所有菜单项设置为MF_OWNERDRAW,即自绘模式第二步:在WM_MEASUREITEM消息中设置菜单项的大小第三步:在WM_DRAWITEM消息中进行菜单项的绘制 问题首先出现在了第一步,我要绘制的是一个上下文菜单,即右键菜单,要将菜单项设置为MF_OWNERDRAW,需原创 2009-04-26 19:37:00 · 6029 阅读 · 5 评论 -
MFC程序的发布
1.将“运行时库”设置为“多线程/MT”2.设置为在静态库中使用MFC3.生成Release版本原创 2009-04-28 18:07:00 · 650 阅读 · 0 评论 -
Delphi如何调用C++写的DLL
BOOL WINAPI funname(char *pFileName,char *pID);这是C++写的一个DLL里面的函数我现在想用delphi调用这个函数静态:function funname(var pFileName:pchar;var pID:pchar):integer;stdcall;external DLLNAME.dll name funnam原创 2009-04-30 01:56:00 · 1037 阅读 · 0 评论 -
设置视图背景颜色
BOOL CTestView::OnEraseBkgnd(CDC* pDC){ // TODO: 在此添加消息处理程序代码和/或调用默认值 /* 视图背景颜色 */ CRect rect; CBrush brush; brush.CreateSolidBrush( RGB( 242, 240, 239 ) ); pDC->GetClipBox(rect); pDC-原创 2009-07-15 18:52:00 · 808 阅读 · 0 评论 -
修改MFC窗口标题的最简单方法
在应用程序类中加入如下代码: BOOL CClientApp::InitInstance(){ if (!ProcessShellCommand(cmdInfo)) return FALSE; m_pMainWnd->SetWindowTextW( _T( "窗口标题" ) );} 注意:SetWindowText必须在Proc原创 2009-07-20 20:54:00 · 1005 阅读 · 0 评论 -
设置工具栏图标背景颜色为透明
m_imgToolBar.Create( 32, 32, ILC_MASK | ILC_COLOR32, 6, 0 );CBitmap bm;bm.LoadBitmapW( IDR_MAINFRAME );m_imgToolBar.SetBkColor( ::GetSysColor( COLOR_BTNFACE ) );//第二个参数为图片背景颜色m_imgToolBar.Ad原创 2009-07-22 01:57:00 · 3345 阅读 · 0 评论 -
给工具栏上的按钮添加文字(VC)
转自 http://blog.youkuaiyun.com/learnhard/archive/2008/03/16/2187422.aspx 详见:MSDN里的CToolBar::SetSizes函数中的示例,摘抄如下:// 这个例子演示了如何将文字添加到工具栏按钮上int CMainFrame::OnCreate(LPCREATESTRUCT lpC原创 2009-07-21 05:33:00 · 2093 阅读 · 0 评论 -
MFC VC中使菜单项变灰
一、没有UpdateCmdUI句柄时MFC中缺省的习惯是当没有UpdateCmdUI句柄时程序是使能(Enable)菜单,菜单自动变成使能,只要关掉缺省值就可以了,把下面的代码加入你的程序 CMainFrm::CMainFrm { // Other stuff this->m_bAutoMenuEnable = false; } 然后在消息响应函数中添加如下代码:原创 2009-07-27 21:14:00 · 941 阅读 · 1 评论 -
文档视图结构下多视图间的控制
程序结构: 创建了一个基于CFormView的MFC文档视图结构的程序,并用CSplitterWnd将窗口分割为2列,左边显示默认创建CFormView视图,右边是CHtmlView视图。 在CFormView视图上添加一个按钮,通过点击按钮在CHtmlView显示一个网页。 从一个视图中控制另一个视图的方法如下: 第一步:获取文档对象指针 第二步:遍历所有原创 2009-06-30 14:44:00 · 666 阅读 · 0 评论 -
让MFC程序窗口别再与众不同
创建了一个基于CFormView的MFC程序,但发现视图区域明显与窗体边框不一致(如图1) 图1 解决办法:在OnInitialUpdate中添加以下代码:ModifyStyleEx(WS_EX_CLIENTEDGE, 0, SWP_FRAMECHANGED); 最后效果如图2 图2原创 2009-06-30 12:26:00 · 497 阅读 · 0 评论 -
VS2005下CString转char*的简单方法
方法一:CString cstring; USES_CONVERSION;char str[MAX_STRING];strcpy_s(str, MAX_STRING, W2A( cstring); 方法二: CString cstring;const char * constChar=(LPSTR)(LPCTSTR)cstring;原创 2009-07-02 08:47:00 · 892 阅读 · 0 评论 -
VC对话框嵌套对话框
m_ToolBarDlg.Create(CToolBarDlg::IDD, this);m_ToolBarDlg.ModifyStyle(m_ToolBarDlg.GetStyle(), WS_CHILD, 0);m_ToolBarDlg.SetParent(this);m_ToolBarDlg.ShowWindow(SW_SHOW);原创 2015-05-01 21:27:07 · 654 阅读 · 0 评论