MFC增强----任务对话框CTaskDialog类
摘要:1 /** 2 注意:从Windows Vista系统才开始支持CTaskDialog类,所以在使用时最好调用 CTaskDialog::IsSupported() 方法做判断 3 同时:CTaskDialog类只对Unicode应用程序可用, 同时要添加头文件:include "afxtaskdialog.h"的支持 4 */ 5 void CMainFrame::OnCtaskdialog() 6 { 7 if( CTaskDialog::IsSupported() ) // 判断是否支持CTaskDialog类 8 { 9 ...
阅读全文
posted @
2014-03-29 10:40
可笑痴狂
阅读(2567)
推荐(0) 编辑
MFC中位图的显示
摘要:分析: 首先,我们要明确一点,窗口的绘制包括两个步骤,首先:擦除窗口背景,然后再对窗口重新进行绘制;当擦除窗口背景时,程序会发生一个WM_ERASEBKGND消息,因此可以在此响应函数中完成位图的显示。代码如下: 1 BOOL CGraphicView::OnEraseBkgnd(CDC* pDC) 2 { 3 // TODO: 在此添加消息处理程序代码和/或调用默认值 4 CBitmap bitmap; 5 bitmap.LoadBitmapA( IDB_BITMAP1 ); 6 7 BITMAP bmp; 8 bitmap.Ge...
阅读全文
posted @
2014-03-20 17:26
可笑痴狂
阅读(12759)
推荐(0) 编辑
MFC如何制作字体选择对话框
摘要:MFC封装类:CFontDialog核心代码如下: 1 void CGraphicView::OnFont() 2 { 3 CFontDialog dlg; 4 if( IDOK == dlg.DoModal() ) 5 { 6 if( m_font.m_hObject ) // 如果m_font对象已经和某个字体资源相关联,要先释放这个资源,之后才能和新的资源进行关联,否则会报错 7 m_font.DeleteObject(); 8 m_font.CreateFontIndirectW( dlg.m_cf....
阅读全文
posted @
2014-03-20 13:21
可笑痴狂
阅读(4977)
推荐(0) 编辑
MFC中如何显示颜色选择对话框
摘要:其实很简单,使用MFC现有的类CColorDialog 即可实现核心代码如下: 1 void CCColorDialogView::OnGraphSetting() 2 { 3 CColorDialog m_setClrDlg; 4 m_setClrDlg.m_cc.Flags |= CC_FULLOPEN|CC_RGBINIT; // CC_RGBINIT可以让上次选择的颜色作为初始颜色显示出来 5 m_setClrDlg.m_cc.rgbResult = m_clr; //记录上次选择的颜色 6 if(IDOK ==m_setClrDlg....
阅读全文
posted @
2014-03-20 11:07
可笑痴狂
阅读(7816)
推荐(0) 编辑
MFC/Windows API 使用过的函数(持续更新)
摘要:1 /*******************使用默认画笔对象**************************** 2 // 3 //绘制矩形 4 pDC->MoveTo(50, 50); //返回值是一个指向先前位置的CPoint对象,它比结构Point对象多了一些成员函数 5 pDC->LineTo(50, 200);//此时当前位置也变为(50, 200) 6 pDC->LineTo(150, 200); 7 pDC->LineTo(150, 50); 8 pDC->LineTo(50, 50); 9 10 //Arc函...
阅读全文
posted @
2014-03-18 14:11
可笑痴狂
阅读(1631)
推荐(0) 编辑
MFC中如何给静态文本框添加消息响应
摘要:需要两个步骤:第一个: 是改变它的ID(默认情况下所有的静态文本框的ID都为IDC_STATIC,你需要改变他的ID为其他的值)。第二个: 是在它的属性对话框中选中Notify选项,VS是将该属性设置为TRUE。
阅读全文
posted @
2014-03-14 16:23
可笑痴狂
阅读(4181)
推荐(0) 编辑
MFC中卡拉OK字体的定时器实现,使用DC的DrawText函数实现
摘要:1 void CTextView::OnTimer(UINT_PTR nIDEvent) 2 { 3 m_nWidth += 5; // 在构造函数中初始化为 0; 4 5 CClientDC dc( this ); 6 TEXTMETRIC tm; 7 dc.GetTextMetrics( &tm ); 8 CRect rect; 9 rect.left = 0;10 rect.top = 200;11 rect.right = m_nWidth;12 rect.bottom = rect.top + tm.tmH...
阅读全文
posted @
2014-03-12 12:37
可笑痴狂
阅读(2380)
推荐(1) 编辑
MFC中插入符的生成
摘要:响应WM_CREATE消息的代码如下: 1 int CTextView::OnCreate(LPCREATESTRUCT lpCreateStruct) 2 { 3 if (CView::OnCreate(lpCreateStruct) == -1) 4 return -1; 5 6 // 插入符在窗口重绘的过程中不会消失 7 /** 创建文本插入符 8 CClientDC dc( this ); 9 TEXTMETRIC tm;10 dc.GetTextMetrics( &tm ); // 通过 TEXTMETR...
阅读全文
posted @
2014-03-12 10:30
可笑痴狂
阅读(1234)
推荐(0) 编辑
MFC路径层的使用(BeginPath和EndPath函数)
摘要:响应WM_PAINT消息的代码如下: 1 void CTextView::OnDraw(CDC* pDC) 2 { 3 CTextDoc* pDoc = GetDocument(); 4 ASSERT_VALID(pDoc); 5 if (!pDoc) 6 return; 7 8 CString str( "VC++ 深入编程!" ); 9 /*10 CString str;11 str = "VC++ 深入编程!";12 */13 pDC->TextOutW( 50, 50, str );14 ...
阅读全文
posted @
2014-03-12 10:25
可笑痴狂
阅读(3559)
推荐(0) 编辑
MFC中设备描述表dc的使用
摘要:1 以下代码我是在View类中实现的: 2 /** 利用平台SDK实现画线功能 3 // 首先获得窗口的设备描述表 4 HDC hdc; 5 hdc = ::GetDC( m_hWnd ); //调用的是平台SDK的成员函数 6 // 移动到线条的起点 7 MoveToEx( hdc, m_ptOrigin.x, m_ptOrigin.y, NULL ); // 第四个参数是一个指向Point结构体的指针,用于保存移动前鼠标的位置坐标,这里不需要这个坐标,所以设置为NULL 8 LineTo( hdc, point.x, point.y );...
阅读全文
posted @
2014-03-11 15:55
可笑痴狂
阅读(2298)
推荐(0) 编辑
不能从const char *转换为LPCWSTR --VS经常碰到
摘要:不能从const char *转换为LPCWSTR在VC 6.0中编译成功的项目在VS2005 vs2005、vs2008、vs2010中常会出现类型错误。经常出现的错误是:不能从const char *转换为LPCWSTR如使用MessageBox(hwnd,"TEST",NULL,0)就会报错,如果使用强制转换(LPCWSTR)"TEST",虽然能够通过,但是编码会出错。可行的办法是使用 _T("TEST")转换,或者TEXT("TEST" )都可以MessageBox(hwnd,TEXT("TEST
阅读全文
posted @
2014-03-07 14:46
可笑痴狂
阅读(35210)
推荐(3) 编辑