随笔分类 - MFC
摘要:有人说聪明的程序员用Delphi,我承认我并不聪明,虽然Delphi确实很好用,但实在是受不了Delphi的那个编译器,在编辑器中鼠标光标到处乱跑,除非需要的程序是急用,否则我的第一选择不是Delphi。有人也说真正的程序员用VC,当然,我也不得不承认自己压根儿就不是一个程序员,只是一个喜欢编程又上不了档次的准菜鸟,不过我偶尔也会拿起VC玩玩。在Delphi中要画一个界面,只需要鼠标一拖一拉就搞定了,而VC呢?让我们来画一个简单的界面吧!界面很简单,一个按钮,一个支持多行显示的文本框。首先创建一个单文档视图的MFC程序,在视图向导的最后一步中选择CFormView视图,这样便于拖拉控件。对于M
阅读全文
摘要:运行环境:VS2005, ANSI字符集void CHelloView::OnBnClickedButton1(){ // TODO: 在此添加控件通知处理程序代码 CInternetSession Sess; CHttpFile *Http = NULL; CString HtmlSource = ""; char Buf[1024]; USES_CONVERSION; Http = ( CHttpFile* ) Sess.OpenURL( "http://www.baidu.com" ); //Http->ReadString( HtmlSou
阅读全文
摘要:假设CMyDialog为对话框类1.先在CMyDialog.cpp中声明一个全局变量CMyDialog* pDlg;2在OnInitDialog()的时候,pDlg = this;3.在别的类使用他的时候,在别的类的Cpp中添加extern CMyDialog* pDlg;4.pDlg->yourfunction();
阅读全文
摘要:CRuleSetDlg *RuleSetDlg = ( CRuleSetDlg* ) this->GetParent();
阅读全文
摘要://模拟鼠标点击事件::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的句柄
阅读全文
摘要:原始作者: Hwycheng Leo(FlashBT@Hotmail.com)作者网站: http://www.hwysoft.com/chs/作者Blog: http://hwycheng.blogchina.com作者简介: 开发了BitTorrent下载软件 - FlashBT(变态快车), 目前从事企业级的P2P/IM平台的设计和开发工作参考:MSDN转载说明: 你可以自由转载本文章,但是请保留此以上的声明和文字默认情况下CToolBar的按钮就的大小可以使用SetSizes成员函数设置按钮的宽度和高度。但是效果是对所有的按钮就设置一样的宽度和高度。按钮中只显示图片时, 我们不会感觉有
阅读全文
摘要:BOOL CRightView::PreTranslateMessage(MSG* pMsg){// TODO: 在此添加专用代码和/或调用基类int nVirtKey; //屏蔽右键菜单if ((pMsg->message == WM_RBUTTONDOWN) ||(pMsg->message == WM_RBUTTONDBLCLK))return TRUE;//禁止招标标显示I型指针HCURSOR curIbeam = LoadCursor( NULL, IDC_IBEAM );if ( GetCursor() == curIbeam ){HCURSOR curArrow =
阅读全文
摘要:可能经常在写程序的时候用F1打开MSDN, 搜索函数的帮助,可是有的时候,会莫名其妙的, 不知道什么原因, 导致MSDN的搜索功能失效, 无论你输入什么, 都搜索不到, 在索引里面, 也看不到任何列表,对于任何的CHM格式的文件都是如此, 能打开就是搜索不到。因为写程序需要, 所以很急, 有一次, 没有找到解决方法, 为此,我重装了MSDN无效, 今天在网上好好找了一番, 终于给我找到了。其实我们都知道, chm文件是由Windows目录下的hh.exe这个文件打开的,但是它的搜索功能却不是这个文件能办到的, 所以, chm能打开却无法搜索, 或者是MSDN能打开却无法搜索, 即使重装也无济于
阅读全文
摘要:工作中需要用到标题中的两个类,有很多不明白之处,在网上查找了些资料,整理后写了两个函数:1、CHtmlView类加载内存中的HTML文本函数(CMyHtmlCtrl是从CHtmlView类继承的),此函数主要是参照了http://www.vckbase.com/document/viewdoc/?id=1472//*******************************************************************// 函数名: NavigateHTML()// 显示指定的HTML文本内容。//// 参数列表:// {I] const CString&
阅读全文
摘要:在CWinApp类的InitInstance()中添加如下代码RECT rc;::GetWindowRect( m_pMainWnd->m_hWnd, &rc );::SetWindowPos( m_pMainWnd->m_hWnd, HWND_TOP, ( GetSystemMetrics( SM_CXSCREEN ) - ( rc.right - rc.left ) ) / 2,( GetSystemMetrics( SM_CYSCREEN ) - ( rc.bottom - rc.top ) ) / 2,rc.right - rc.left, rc.bottom -
阅读全文
摘要:BOOL GetProcessList( ){HANDLE hProcessSnap;HANDLE hProcess;PROCESSENTRY32 pe32;DWORD dwPriorityClass;// Take a snapshot of all processes in the system.hProcessSnap = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 );if( hProcessSnap == INVALID_HANDLE_VALUE ){printError( _T("CreateToolhelp32Snap
阅读全文
摘要:一、没有UpdateCmdUI句柄时MFC中缺省的习惯是当没有UpdateCmdUI句柄时程序是使能(Enable)菜单,菜单自动变成使能,只要关掉缺省值就可以了,把下面的代码加入你的程序 CMainFrm::CMainFrm { // Other stuff this->m_bAutoMenuEnable = false; }然后在消息响应函数中添加如下代码:CMenu* m_menu = GetMenu(); CMenu* submenu = m_menu->GetSubMenu(0); submenu->EnableMenuItem(ID_FILE_NEW, MF_BY
阅读全文
摘要: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.Add( &bm, RGB( 212, 208, 200 ) );bm.Detach();m_wndToolBar.GetToolBarCtrl().SetImageList( &m_imgToolBar )
阅读全文
摘要:转自 http://blog.csdn.net/learnhard/archive/2008/03/16/2187422.aspx详见:MSDN里的CToolBar::SetSizes函数中的示例,摘抄如下://这个例子演示了如何将文字添加到工具栏按钮上intCMainFrame::OnCreate(LPCREATESTRUCTlpCreateStruct){if(CMDIFrameWnd::OnCreate(lpCreateStruct)==-1)return-1;//Createatoolbar.ResourceIDofthetoolbartobeloaded//isIDR_MAINFRA
阅读全文
摘要:在应用程序类中加入如下代码:BOOL CClientApp::InitInstance(){ if (!ProcessShellCommand(cmdInfo)) return FALSE; m_pMainWnd->SetWindowTextW( _T( "窗口标题" ) );}注意:SetWindowText必须在ProcessShellCommand创建文档之后使用,否则会运行错误。可直接将设置窗口标题的代码加到InitInstance的尾部。
阅读全文
摘要:BOOL CTestView::OnEraseBkgnd(CDC* pDC){ // TODO: 在此添加消息处理程序代码和/或调用默认值 /* 视图背景颜色 */ CRect rect; CBrush brush; brush.CreateSolidBrush( RGB( 242, 240, 239 ) ); pDC->GetClipBox(rect); pDC->FillRect(rect,&brush); return true; return CView::OnEraseBkgnd(pDC);}
阅读全文
摘要:/* 窗口样式参考列表:WS_POPUP - 弹出式窗口(不能与WS_CHILDWINDOW样式同时使用)WS_CHILDWINDOW - 子窗口(不能与WS_POPUP合用)WS_MINIMIZE - 最小化状态WS_VISIBLE - 可见状态WS_DISABLED - 不可用状态WS_CLIPSIBLINGS - 使窗口排除子窗口之间的相对区域WS_CLIPCHILDREN - 当在父窗口内绘图时,排除子窗口区域WS_MAXIMIZE - 具有最大化按钮,须指定WS_SYSTEM样式WS_CAPTION - 有标题框和边框(和WS_TILED样式相同)WS_BORDER - 有单边框WS
阅读全文
摘要:最近一个转换文件的程序,在转换大批量文件是老是 stack overflow。查来查去。。原来是 在大循环中用了W2A和A2W两个宏。MSDN的 TN059: Using MFC MBCS/Unicode Conversion Macros 有描述,这两个宏在大循环中要有特殊的写法,不然保不准就 stack overflow。Other ConsiderationsDo not use the macros in a tight loop. For example, you do not want to write the following kind of code:Copy Codevoi
阅读全文
摘要:CString转std::wstringstd::wstring str = filename.GetString();std::wstring转CStringCString str( filename.c_str() );
阅读全文
摘要:CString转int方法:CString h;int a=_ttoi(h); int转化CString方法:int a=1263;CString h;h.Format(_T("%d"),a);
阅读全文

浙公网安备 33010602011771号