MFC
qianpeng4
这个作者很懒,什么都没留下…
展开
-
CDialog中创建CView窗口
新建一个视图类:CMyView,派生自CView 在对话框类CCreateViewDlg上定义一个视图类指针CMyView *m_pView;为了使得视图创建在指定的区域,在对话框上放一个静态文本控件,资源ID为IDC_STATIC_VIEW// OnInitDialog初始化中添加UINT TargetCtrID = IDC_STATIC_VIEW; CW转载 2017-07-11 17:31:45 · 643 阅读 · 0 评论 -
HBITMAP和CBitmap的互相转换
1 HBITMAP转成CBitmapHBITMAP hBmp; 方法①[cpp] view plain copyCBitmap* pBmp = CBitmap::FromHandle(hBmp); 方法②[cpp] view plain copyCBitmap b转载 2017-08-30 17:27:23 · 726 阅读 · 0 评论 -
MFC框架中对最近文件列表的支持
MFC框架中对最近文件列表的支持MFC建立的标准框架程序中有记录最近操作文件的能力,这些最近文件的路径被记录到注册表,在程序运行时,又将添加到文件菜单中。 在CWinApp中有个 CRecentFileList* m_pRecentFileList;指针管理这些信息。 以下对此过程进行分析,采用类似的方法,可以保存其他一些固定条数的最近数据。 1.CRecent转载 2017-09-08 16:31:22 · 1662 阅读 · 0 评论 -
MFC文件过滤
LPCTSTR lpszFilter = _T("DMX(*.dmx)|*.dmx|All Files(*.*)|*.*||");CFileDialog dlg(FALSE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, lpszFilter);原创 2017-09-26 08:50:17 · 669 阅读 · 0 评论 -
CListCtrl 设置选中状态
原文链接: http://blog.163.com/lejianz@126/blog/static/11650292013610103232600/CListCtrl 设置选中状态1. 使用CListCtrl的函数SetItemState(int nItem, UINT nState, UINT nMask);如:m_list.SetItemState(index,转载 2017-09-26 09:24:15 · 2727 阅读 · 0 评论 -
字符串查找(文件路径查找)
1、 char *strchr( const char *string, int c ); wchar_t *wcschr( const wchar_t *string, wchar_t c ); Find a character in a string. 查找一个字符串中首次出现的指定字符。 Return Value:Each of these func原创 2017-09-26 11:10:30 · 713 阅读 · 0 评论 -
MFC带百分比的圆形进度条
#pragma once#includeusing namespace Gdiplus;// CCircleProgressclass CCircleProgress : public CStatic{ DECLARE_DYNAMIC(CCircleProgress)public: CCircleProgress(); virtual ~CCircl原创 2017-09-19 16:05:20 · 3766 阅读 · 0 评论 -
注册热键和快捷键
RegisterHotKey(m_hWnd, 1001,0, VK_DELETE);UnregisterHotKey(m_hWnd, 1001);响应WM_HOTKEY消息原创 2017-09-15 15:44:16 · 681 阅读 · 0 评论 -
MFC添加弹出菜单,使弹出菜单某项不可用变灰
在右击消息中添加:CPoint menuPoint = point;CMenu menu;menu.LoadMenuW(IDR_GROUPMENU);ClientToScreen(&menuPoint); //一定要加载之前 menu.GetSubMenu(0)->EnableMenuItem(ID_POP_SETUUID, MF_BYCOMMAND | MF_DISA原创 2017-10-13 14:31:47 · 2206 阅读 · 0 评论 -
MFC创建透明CBrush
使用SDK比较容易,只要GetStockObject(NULL_BRUSH);然后选进设备描述表就可以了。关于MFC中的CBrush类,MS没有提供直接获得透明画刷的方法,查了下资料,可以使用如下的方法:CBrush *pBrush = CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));转载 2017-08-26 10:31:31 · 492 阅读 · 0 评论 -
对话框背景透明
转载自:http://blog.sina.com.cn/s/blog_673ccb5b01010uwr.html设置背景颜色: 我用了很多方法都不行,查了很多资料,现在说一下解决方案吧。 在XXXXXXDlg.头文件的protected:中加入CBrush m_brush; 在XXXXXXDlg.cpp文件中的OnInitDialog()初始化函数中加入画刷m转载 2017-08-18 15:27:52 · 313 阅读 · 0 评论 -
MFC中listctrl图片拖拽效果
CEffectList继承基类clistctrl程序运行效果如下,使用的VS2013void CEffectList::OnLvnBegindrag(NMHDR *pNMHDR, LRESULT *pResult){LPNMLISTVIEW pNMLV = reinterpret_cast(pNMHDR);// TODO: 在此添加控件通知处理程序代码*pResu原创 2017-07-06 14:18:17 · 1160 阅读 · 0 评论 -
DYNAMIC_DOWNCAST
DYNAMIC_DOWNCAST(class, pointer ):如果pointer指针所指向的对象是class类型的,就返回这个指针。否则返回NULL 例如 你获取到一个指针 XXX *pointer; 你想判断它是不是指向某个类 ,例如 A 这个类A* p= DYNAMIC_DOWNCAST(A, pointer );如果pointer是指向A这个类则返回此指转载 2017-07-08 08:45:08 · 507 阅读 · 0 评论 -
树形视图和列表视图中的HitTest
1、引言 HitTest为命中测试的意思。在使用MFC编写程序的时候,在树形视图以及列表视图中通常会涉及到需要获得鼠标当前位置所对应的元素。这种通过光标坐标位置来获得相应元素项的操作我们称之为命中测试。在树形视图中使用HTREEITEM类型变量来表示视图中的元素项,而在列表视图中可以直接使用整型变量的编号来表示列表视图中对应的元素项。通过调用HitTest()方法转载 2017-07-08 08:51:22 · 295 阅读 · 0 评论 -
GDI泄漏造成程序异常或卡死
c++一个程序中gdi是有最大上限的。1、Create出来的object,需要deleteObject例:CFont *font = new CFont;font->CreateFontW(7, 6, 0, 0, FW_BOLD, FALSE, FALSE, 0, ANSI_CHARSET,OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEF原创 2017-07-20 08:38:35 · 750 阅读 · 0 评论 -
格式化输出字符串到变量
CStringW strDescription;strDescription.Format(_T("%d:%d:%d");int a, p, c;std::string de = CStringA(strDescription);sscanf(de.c_str(), "%d:%d:%d", &a, &p, &c);原创 2017-07-24 16:37:09 · 647 阅读 · 0 评论 -
将CBitmap分割成两个CBitmap
/////////////////////pDC->SetBrushOrg(110, 150) 不设置画刷起点的话,画刷是针对整个dc平铺画图的。/////////////////////void CDrawItemDlg::GetPartTwoBitmap(CDC& srcDC , CBitmap& srcBimap, CBitmap& desBitmap1, CBit原创 2017-08-09 10:19:17 · 532 阅读 · 0 评论 -
COLORREF转成RGB
例:COLORREF color;int r = BYTE(color);int b = BYTE(color>>8)int g = BYTE(color>>16)int a = BYTE(color>>24)原创 2017-07-20 09:22:35 · 2131 阅读 · 1 评论 -
MFC通过对话框窗口句柄获得对话框对象指针
MFC在很多的对话框操作中,我们经常要用到在一个对话框中调用另一个对话框的函数或变量.可以用如下方法来解决.HWND hWnd=::FindWindow(NULL,_T("窗口名")); //得到对话框的句柄C***Dialog* pWnd= (C***Dialog*)FromHandle(hWnd); //由句柄得到对话框的对象指针pWnd->xxx( );转载 2017-08-10 16:51:36 · 4023 阅读 · 0 评论 -
实现CListctrl自动排序
1、在对话框(CStatusDlg)中放入CListCtrl控件,并为其添加变量_listCtrl 设置控件风格为report2、在初始化对框框中初始化CListCtrl控件BOOL CStatusDlg::OnInitDialog(){ CDialogEx::OnInitDialog(); //这里注意后面多加了一个空格,方便直接添加排序的图标 _listCtrl.Ins...原创 2018-05-23 10:50:04 · 1969 阅读 · 1 评论