随笔 - 390,  文章 - 34,  评论 - 62,  阅读 - 139万

随笔分类 -  MFC

1 2 下一页
FTP客户端上传下载Demo实现
摘要:1、第一次感觉MS也有这么难用的MFC类;2、CFtpFileFind类只能实例化一个,多个实例同时查找会出错(因此下载时不能递归),采用队列存储目录再依次下载;3、本程序支持文件夹嵌套上传下载;4、boost::filesystem::create_directory不能递归创建文件夹,需手动实现... 阅读全文
posted @ 2015-12-10 15:51 可笑痴狂 阅读(19261) 评论(0) 推荐(0) 编辑
ODBC更新记录集提示”记录集为只读“
摘要:创建的ODBC应用程序默认的记录集不具有只读属性,但是再更新记录表时会提示”记录集为只读“,这是为什么呢?今天看书找到了答案: 因为MFC中的数据库类不支持需要连接两个或者多个表的记录集更新,如果选择数据源的时候选择多个表,则记录集的更新操作是禁止的,因为那样使记录集自动具有只读属性,此时该数据库... 阅读全文
posted @ 2014-05-06 08:48 可笑痴狂 阅读(2455) 评论(0) 推荐(0) 编辑
MFC剪贴板通信
摘要:1、建立一个基于对话框的应用程序,界面如下:2、对两个按钮进行消息响应: 1 void CChipBoardOperateDlg::OnBnClickedBtnCopycb() 2 { 3 // TODO: 在此添加控件通知处理程序代码 4 if( !OpenClipboard() ... 阅读全文
posted @ 2014-04-16 16:31 可笑痴狂 阅读(3721) 评论(0) 推荐(0) 编辑
VS2010如何生成ActiveX控件测试容器
摘要:VS2010中默认没有ActiveX控件测试容器TSTCON.exe,而是微软把这个文件放到了例子程序中,需要用户自己编译;具体方法为:在VS2010的安装目录中找到以下目录Samples\2052\C++\MFC\ole\TstCon项目,编译该项目会生成一个TstCon.exe的可执行文件,该文件即为ActiveX控件测试容器,打开TstCon.exe效果如下: 阅读全文
posted @ 2014-04-10 17:02 可笑痴狂 阅读(4612) 评论(0) 推荐(0) 编辑
钩子函数举例
摘要:用VS2010建立一个基于对话框的应用程序HOOKDLG,添加修改以下函数可以使程序屏蔽掉鼠标和键盘消息,按Alt+F4键退出程序: 1 HWND hWnd = NULL; //定义成全局变量 2 HHOOK hKeyboard; 3 HHOOK hMouse; 4 5 LRESULT CALLBACK MouseProc( int nCode, WPARAM wParam, LPARAM lparam ) // 鼠标钩子函数 6 { 7 return 1; // 返回非零值表示已经对当前消息进行了处理,这样系统就不会再将这个消息传递给目标窗口过程 8 }... 阅读全文
posted @ 2014-04-10 13:16 可笑痴狂 阅读(2152) 评论(0) 推荐(0) 编辑
InvalidateRect,invalidate,updatewindow(转)
摘要:InvalidateRect(HWND) 使窗口无效 产生消息WM_PAINT;ValidateRect(HWND)使窗口有效 清除消息队列中的WM_PAINT消息在编程的时候经常把UpdateData、Invalidate、InvalidateRect和UpdateWindow四个函数混淆,在这里将简单介绍它们的区别。UpdateData(): 当你使用了ClassWizard建立了控件和变量之间的联系后:当你修改了变量的值,而希望对话框控件更新显示,就应该在修改变量后调用UpdateData(FALSE);如果你希望知道用户在对话框中到底输入了什么,就应该在访问变量前调用UpdateDat 阅读全文
posted @ 2014-04-05 10:06 可笑痴狂 阅读(5101) 评论(0) 推荐(0) 编辑
MFC中打印对话框CPrintDialog类
摘要:1 void CCPrintDialogView::OnPrint() 2 { 3 DWORD dwflags=PD_ALLPAGES|PD_NOPAGENUMS|PD_USEDEVMODECOPIES|PD_SELECTION|PD_HIDEPRINTTOFILE; 4 CPrintDialog dlg(FALSE, dwflags, NULL); 5 if(dlg.DoModal() == IDOK) 6 { 7 CDC dc; 8 dc.Attach(dlg.GetPrinterDC()); 9 //Dra... 阅读全文
posted @ 2014-04-02 16:09 可笑痴狂 阅读(6189) 评论(0) 推荐(0) 编辑
MFC中页面设置对话框CPageSetupDialog
摘要:1 void CCPageSetupDialogView::OnPageSetting() 2 { 3 CPageSetupDialog dlg; // 利用默认参数构造页面设置对话框 4 if(dlg.DoModal()) 5 { 6 PAGESETUPDLG psd = dlg.m_psd; // 获取信息 7 CString str; 8 str.Format(_T("页面大小为:%d * %d"), psd.ptPaperSize.x, psd.ptPaperSize.y); 9 ... 阅读全文
posted @ 2014-04-02 15:57 可笑痴狂 阅读(1455) 评论(0) 推荐(0) 编辑
MFC中查找替换对话框CFindReplaceDialog类
摘要:1 void CCFindReplaceDialogView::OnFind() 2 { 3 CFindReplaceDialog* pDlg = new CFindReplaceDialog(); 4 5 pDlg->Create( true, NULL, NULL, FR_DOWN, this ); 6 /* 7 第一个参数为true显示的是查找对话框,为False时显示的是查找和替换对话框 8 第二个参数指定在查找对话框中显示的字符串 9 第三个参数指定在替换对话框中显示的字符串10 第四个参数为... 阅读全文
posted @ 2014-04-02 15:46 可笑痴狂 阅读(2790) 评论(0) 推荐(0) 编辑
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) 推荐(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) 推荐(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) 推荐(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) 推荐(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) 推荐(0) 编辑
MFC中如何给静态文本框添加消息响应
摘要:需要两个步骤:第一个: 是改变它的ID(默认情况下所有的静态文本框的ID都为IDC_STATIC,你需要改变他的ID为其他的值)。第二个: 是在它的属性对话框中选中Notify选项,VS是将该属性设置为TRUE。 阅读全文
posted @ 2014-03-14 16:23 可笑痴狂 阅读(4181) 评论(0) 推荐(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) 评论(0) 推荐(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) 推荐(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) 推荐(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) 推荐(0) 编辑
文本文件与二进制文件区别
摘要:文本文件与二进制文件区别原文地址:http://www.cnblogs.com/zhangjiankun/archive/2011/11/27/2265184.html一、文本文件与二进制文件的定义 大家都知道计算机的存储在物理上是二进制的,所以文本文件与二进制文件的区别并不是物理上的,而是逻辑上的。这两者只是在编码层次上有差异。简单来说,文本文件是基于字符编码的文件,常见的编码有ASCII编码,UNICODE编码等等。二进制文件是基于值编码的文件,你可以根据具体应用,指定某个值是什么意思(这样一个过程,可以看作是自定义编码。 从上面可以看出文本文件基本上是定长编码的(也有非定长的编码如UT. 阅读全文
posted @ 2013-11-28 10:00 可笑痴狂 阅读(403) 评论(0) 推荐(0) 编辑

1 2 下一页

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示