DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2014年2月28日

摘要: CImageListImageList;//创建一个包含3个24位色32x32图片的ImageList,ILC_MASK的意思是同时创建一个mask,这样在下面指定了背景颜色以后ImageList就可以画透明图像了ImageList.Create(32,32,ILC_COLOR24|ILC_MASK,3,1);//加载位图,IDB_XXXX是一个96x32大小的图片,背景颜色为红色RGB(255,0,0)CBitmapBmp;Bmp.LoadBitmap(IDB_XXXX);//将图片加到ImageList中ImageList.Add(&Bmp,RGB(255,0,0));....// 阅读全文
posted @ 2014-02-28 10:44 DoubleLi 阅读(737) 评论(0) 推荐(0)

摘要: 对话框中的小红线可以被移动的一、类名是 CBinarizationDlg二、定义两个变量BOOL m_flag;int nPos;在构造函数初始化m_flag = false;nPos=256;三、响应消息函数三个afx_msg void OnPaint();afx_msg void OnLButtonDown(UINT nFlags, CPoint point);afx_msg void OnLButtonUp(UINT nFlags, CPoint point);afx_msg void OnMouseMove(UINT nFl... 阅读全文
posted @ 2014-02-28 10:32 DoubleLi 阅读(875) 评论(0) 推荐(0)

摘要: 对话框的种类有两种类型的对话框:模态对话框和非模态对话框.模态对话框时指当其显示时,程序会暂停执行,直到关闭这个模态对话框后,才能继续执行程序中的其他任务。非模态对话框显示时,允许转而执行程序中其他任务,而不用关闭这个对话框。创建模态对话框1.在资源编辑器里面新建一个对话框资源,ID采用默认值为:IDD_DIALOG12.双击该对话框,为该对话框添加一个关联的类,命名为CtestDlg3.创建一个菜单项4.为该菜单项添加COMMAND命令消息响应函数,让视类来捕获它5.在实现函数中调用Cdialog类的成员函数:DoModal,添加如下两行代码:CTestDlg dlg;dlg.DoModal 阅读全文
posted @ 2014-02-28 10:29 DoubleLi 阅读(584) 评论(0) 推荐(0)

摘要: C方式:写:FILE *pFile = fopen("1.txt", "w");fwrite("http://www.pcslonline.com", 1, strlen("http://www.pcslonline.com"), pFile);fclose(pFile);读:FILE *pFileRead = fopen("1.txt", "r");char *pBuf;fseek(pFileRead, 0, SEEK_END); //把文件指针移动到文件结尾int len 阅读全文
posted @ 2014-02-28 10:27 DoubleLi 阅读(872) 评论(0) 推荐(0)

摘要: 文件保存://为FALSE,显示保存文件对话框CFileDialog fileDlg(FALSE);fileDlg.m_ofn.lpstrTitle = "我的文件保存对话框";fileDlg.m_ofn.lpstrFilter = "Text Files(*.txt)\0*.txt\0All Files(*.*)\0*.*\0\0";fileDlg.m_ofn.lpstrDefExt = "txt";if (IDOK == fileDlg.DoModal()){CFile file(fileDlg.GetFileName(), CF 阅读全文
posted @ 2014-02-28 10:27 DoubleLi 阅读(368) 评论(0) 推荐(0)

摘要: WM_CREATE消息该消息是Windows发送给视图的第一个消息。由于当应用程序框架调用Create函数时该消息就会被发送,而此时窗口创建还未完成,窗口还不可见,因此在控制函数OnCreate内部,不能调用那些依赖于窗口处于完全激活状态的Windows函数。但是我们可以在被重载的OnInitialUpdate函数内调用这些函数。不过必须注意,对于SDI程序,在视图生存期间OnInitialUpdate函数可能会被调用多次。注意:OnInitialUpdate函数是视图窗口完全建立后,在调用OnDraw函数之前第一个被调用的函数,很多初始化工作可以放在这个函数里,因此很重要。WM_CLOSE消 阅读全文
posted @ 2014-02-28 10:26 DoubleLi 阅读(492) 评论(0) 推荐(0)

摘要: 这里主要用到了一个函数:BOOLSetWindowPos(constCWnd*pWndInsertAfter,intx,inty,intcx,intcy,UINTnFlags);具体用法可以参看MSDNvoid CSYSLoaderDlg::OnCheckFront(){// TODO: Add your control notification handler code hereif (m_checked == TRUE){m_checked = FALSE;SetWindowPos(&CWnd::wndNoTopMost,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE) 阅读全文
posted @ 2014-02-28 10:25 DoubleLi 阅读(1651) 评论(0) 推荐(0)

摘要: 这里主要用到一个函数UINT DragQueryFile( HDROP hDrop, UINT iFile, LPTSTR lpszFile, UINT cch); hDrop: HDROP标识符,即响应函数中的hDropInfo参数 iFile: 待查询的文件索引号,从0开始。可以同时拖拽多个文件,因此就需要一个索引号来进行区分。如果该参数为 0xFFFFFFFF,则该函数返回拖拽的文件的个数 lpszFile: 用于存放文件名的缓冲区首地址 cch: 缓冲区长度 返回值:文件名长度接受一个文件的实例:1.新建mfc对话框。2.对话框行为里面,accept fil... 阅读全文
posted @ 2014-02-28 10:24 DoubleLi 阅读(3405) 评论(0) 推荐(0)

摘要: 一、NOTIFYICONDATA结构NOTIFYICONDATA结构包含了系统用来处理托盘图标的信息,它包括选择的图标、回调消息、提示消息、图标对应的窗口等内容。其定义为: typedef struct _NOTIFYICONDATA {//以字节为单位的这个结构的大小 DWORD cbSize; //接收托盘图标通知消息的窗口句柄 HWND hWnd; //应用程序定义的该图标的ID号 UINT uID;//设置该图标的属性 UINT uFlags; //应用程序定义的消息ID号,此消息传递给hWnd UINT uCallbackMessage; //图... 阅读全文
posted @ 2014-02-28 10:23 DoubleLi 阅读(2388) 评论(0) 推荐(0)

摘要: 1 最简单的办法:添加一个不可见的按钮,设为对话框的默认按钮即可2 重载对话框的PreTranslateMessage消息处理BOOL CSIMDlg::PreTranslateMessage(MSG* pMsg){// TODO: Add your specialized code here and/or call the base classif( pMsg->message ==WM_KEYDOWN){ if(pMsg->wParam == VK_ESCAPE||pMsg->wParam == VK_RETURN) return TRUE;}return CDialog 阅读全文
posted @ 2014-02-28 10:22 DoubleLi 阅读(759) 评论(0) 推荐(0)

摘要: 最近在写一款山寨的反病毒软件,大致功能已经实现,还有一些细小的环节需要细化。其中,在界面编程中,就用到了给ListCtrl控件着色,查看了网上一些文章,终于实现了。其实说白了,原理很简单,就是ListCtrl在插入一个Item的时候,会发送一个NM_CUSTOMDRAW的消息,我们只要实现这个消息响应函数,并在里面绘制我们的颜色就可以了。但是响应这个消息在VC6.0下需要自己实现:1.在头文件中声明函数:afx_msg void OnCustomdrawMyList( NMHDR* pNMHDR, LRESULT* pResult );2.在cpp文件中添加消息映射:ON_NOTIFY(NM_ 阅读全文
posted @ 2014-02-28 10:21 DoubleLi 阅读(826) 评论(0) 推荐(0)

摘要: 在StatusBar中显示当前时间,如下:1.在String Table中插入一项(注意:状态栏将根据字符串的长度来确定相应窗格的缺省宽度,所以指定为00:00:00就为时间的显示预留了空间)2.添加indicators数组3.在OnCreate函数中设置时钟 :SetTimer(1, 1000, NULL);4.添加WM_TIMER 和 WM_CLOSE的消息响应函数 阅读全文
posted @ 2014-02-28 10:20 DoubleLi 阅读(830) 评论(0) 推荐(0)

摘要: 对话条是工具栏和无模式对话框相结合的产物,对话条和对话框类似,包含有标准的Windows控件,并且可以通过创建对话框模板来表示对话条。伸缩条功能很强大,我们可以在伸缩条中直接增加CToolBar,CStatusBar和CDialogBar等类创建的控制条,如下:CReBar rb;rb.Create(....);CToolBar tb;tb.Create(...);tb.LoadToolBar(...);//将工具栏加入到伸缩条rb.AddBar(&tb,...);如果需要在伸缩条的段中包含其他的窗口类型(例如动画控件),仅需要将该控件放进对话框模板中,创建对话条,然后利用CReBar 阅读全文
posted @ 2014-02-28 10:19 DoubleLi 阅读(677) 评论(0) 推荐(0)

摘要: 1.建立一个基于对话框的工程,并在第二步中选择WOSA支持2.建立客户端(1)在头文件中添加成员变量public:CSocket m_clientsocket;(2)每隔一秒钟向服务端发送一次数据3.建立服务端(1)在头文件中添加成员变量public:CSocket m_sockRev;(2)服务端每隔一秒钟接收一次客户端发来的数据程序运行: 阅读全文
posted @ 2014-02-28 10:18 DoubleLi 阅读(289) 评论(0) 推荐(0)

摘要: 1.建立服务端(发送端)(1)声明成员变量public:CSocket m_sockSend;(2)每隔一秒钟发送一次数据2.建立客户端(接收端)(1)声明成员变量public:CSocket m_sockRev;(2)每隔一秒钟接收 一次数据程序运行状态: 阅读全文
posted @ 2014-02-28 10:17 DoubleLi 阅读(345) 评论(0) 推荐(0)

摘要: 阅读全文
posted @ 2014-02-28 10:16 DoubleLi 阅读(453) 评论(0) 推荐(0)

摘要: 1.首先在界面上放置一个static text 控件2.修改它的ID,并添加其控件成员变量CStaticm_staticIcon;3.编写函数: 阅读全文
posted @ 2014-02-28 10:15 DoubleLi 阅读(255) 评论(0) 推荐(0)

摘要: 1.在CMainFrame中添加CSplitterWnd类型的成员变量:2.新建几个派生于类CListView ,CEditView,CtreeView的类3.在CListView ,CEditView的派生类中添加头文件:#include 4.重载OnCreateClient函数程序运行结果: 阅读全文
posted @ 2014-02-28 10:14 DoubleLi 阅读(302) 评论(0) 推荐(0)

摘要: UINT DownloadFile(LPVOID pParam){CWnd*pwnd = AfxGetMainWnd();CProgressCtrl*m_Prog = (CProgressCtrl*)pwnd->GetDlgItem(IDC_PROGRESS1);CButton*bStart = (CButton*)pwnd->GetDlgItem(IDB_BTN_START);charfilebuf[512];CInternetSessionnetSession;CStdioFile*fTargFile;intoutfs;CStringszFile,FileSize,KBin,K 阅读全文
posted @ 2014-02-28 10:12 DoubleLi 阅读(2264) 评论(0) 推荐(0)

摘要: Q: 如何打开一个应用程序?ShellExecute(this->m_hWnd,"open","calc.exe","","", SW_SHOW );或ShellExecute(this->m_hWnd,"open","notepad.exe", "c:\\MyLog.log","",SW_SHOW );正如您所看到的,我并没有传递程序的完整路径。Q: 如何打开一个同系统程序相关连的文档?ShellExecute(this- 阅读全文
posted @ 2014-02-28 10:10 DoubleLi 阅读(869) 评论(0) 推荐(0)