随笔分类 - MFC/Windows API
1
摘要:1、LIB与DLL文件的区别 DLL是一个完整的程序,称为“动态链接库”,DLL中包含的主要有三块内容:1.全部变量 2.函数接口 3.资源;DLL中有一个函数导出表,其中每一项都是一个函数名称。通过一定的方式连接这些函数接口,来调用这些函数的功能。dll有两种加载方式:隐式链接和显式链接。dll一...
阅读全文
摘要:2、基本的Windows Socket API编程 需要在程序中添加下面的包含语句:#include #pragma comment( lib, "WS2_32" ) 使用Vc++编译时需添加编译链接依赖项ws2_32.lib库 协议寻址 在winsock中,应用程序通过Sockaddr_in 结构来指定IP地址和服务端口信息: sock...
阅读全文
摘要:单纯视图之间的切换 单文档多视图切换是我在学习MFC中遇到的一个老大难问题,在今天总算是一一破解了。我觉得视图切换分为三个等级,第一是在未切分窗格的情况下切换视图类;第二是在分割窗格的一个窗格内实行视图切换;第三是在分割窗格和未分割之间的切换和视图切换。 在MFC创建SDI的伊始,MFC默认的视图类是CView,如果CView满足你的需求,可以直接单击finish,如果你不想让CView成为你...
阅读全文
摘要:1.1进程与线程的概念: 进程是指在系统中正在运行的一个应用程序,在传统的操作系统中,是资源的分配单位又是调度运行的单位。 线程是指进程中执行运行的最小单位,即处理机调度的基本单位。 进程是一项任务,线程是独立子任务,可由不同处理器分别来完成,提高了进程运行速度。 1.2进程与线程的比较: 一个程序最少有一个进程,一个进程至少有一个线程。 ...
阅读全文
摘要:1.在ResourceView里加入Toolbar资源,命名IDR_TOOLBAR1 2、在主程序的.h文件中加入变量: CToolBar m_toolbar;CImageList img; 3、在主程序中.h文件中的BEGIN_MESSAGE_MAP(CDetectorDlg,CDialog)函数中加入: ON_NOTIFY_EX( TTN_NEEDTEXT,0,OnToolTipText) 3、在主程序中.h文件中添加消息函数: afx_msg BOOL OnToolTipText(UINT, NMHDR *pTTTStruct, LR...
阅读全文
摘要:最终实现的效果图:步骤一:接下来在资源视图中添加一个ToolBar工具栏(具体怎么添加在这儿就不详细讲解了!)添加后的ToolBar以及工具栏中每个按钮 所命名的ID如下:(可以自定义,只要不重名就可以,一般命名规则是见名知义)那么在资源视图中的工具栏,我们就制作完成了!!步骤二:以上仅仅是进行了按钮的添加,而按钮上面那些相对应的 图片还没有导入,应该将图片导入到资源视图中的Icon中,格式必须为 *.ico,并对每张ICO图片也进行ID的分配步骤三:打开代码添加一个 InitToolBar() 函数成员BOOL CDormDlg::InitToolBar(){ initializeFl...
阅读全文
摘要:1、首先声明一个 CStatusBar m_bar;//声明对象2、然后打开视图资源 String Table中添加两个字段值 3、创建了两个字段值以后,在OnintDialog()所在的 .cpp文件的最上面添加如下代码 static BASED_CODE indicators[]={ ID_INDICATOR_NISH, ID_INDICATOR_TIME};4、然后增加一个成员函数代码如下:BOOL CDormDlg::InitStatusBar(){ m_bar.Create(this);//创建状态栏 m_bar.SetIndicators((unsigned i...
阅读全文
摘要:运行环境:vc++ 6.0 win81、通过资源 添加一组 菜单栏 如下:2、在OnInitDialog()中添加如下代码: // Add "About..." menu item to system menu. m_menu= new CMenu();//需要声明为全局变量 CMenu *m_menu; m_menu->LoadMenu(IDR_MENU1); SetMenu(m_menu);3、运行程序,结果如下:
阅读全文
摘要:第一步:出现"Unable to open the files (...) for class ... "的提示后,你不要管它,直接关掉各对话框就行了.因为此时它己经建好了类和类的实现文件.这个时候要做的工作是,在VC中关闭工作空间,就是退出编程状态.(此时你可以在Windows的资源管理器上己经看到了你新建的类和实现文件了).第二步:你在资源管理器中删掉那个".CLW"文件;第三步:重新在VC6下打开刚才的那个工作空间,调出你建立的那个对话框资源,然后接Ctrl+W,这时会出现一个对话框,意思是说没有CLW文件,问你是不是将所有的文件全部用一个CLW文件管理起来?当然是了.因此,你在...
阅读全文
摘要:一般我们使用的框架是VC提供的Wizard生成的MFC App Wizard(exe)框架,无论是多文档还是单文档,都存在指针获取和操作 问题。下面这节内容主要是一般的框架,然后再讲多线程中的指针使用。使用到的类需要包含响应的头文件。 首先一般获得本类(视,文档,对话框都支持)实例指针 this,用this的目的,主要可以通过类中的函数向其他类或者函数中发指针,以便于在非本类中操作和使用本类中的功能。 这其中的关键在于理解 m_pMainWnd, AfxGetApp(),AfxGetMainWnd() 的意义!1) 在View中获得Doc指针CYouSDIDoc *pDoc=GetDocume
阅读全文
摘要:ID--HANDLE--HWND三者之间的互相转换id->句柄 hWnd = ::GetDlgItem(hParentWnd,id);id->指针 CWnd::GetDlgItem();句柄->idid = GetWindowLong(hWnd,GWL_ID);句柄->指针 CWnd *pWnd=CWnd::FromHandle(hWnd);指针->ID id = GetWindowLong(pWnd->GetSafeHwnd,GWL_ID); GetDlgCtrlID();指针->句柄 hWnd=cWnd.GetSafeHandle() or myw
阅读全文
摘要:很多监控软件要求软件能够在系统重新启动后不用用户去点击图标启动项目,而是直接能够启动运行,方法是写注册表Software\\Microsoft\\Windows\\CurrentVersion\\Run。参考程序可以见下:(查找程序目录的执行文件,存在则进行添加注册表操作)//实用代码一int C***Dlg::CreateRun(void) {//添加以下代码 HKEY RegKey; CString sPath; GetModuleFileName(NULL,sPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH); sPath.ReleaseBuffe
阅读全文
摘要:一个程序从宏观上来说,不外乎就是输入->处理->输出,输入与输出对一个程序来说至关重要。前段时间给可视化平台换脸的时候,平台的输出不仅包括直观的图像显示,用户还希望直观地得到每帧图像的一些相关的参数信息、统计信息等,这时候我就选择在CListView中滚动地显示相关信息,并将窗口进行切分,将CListView的窗口放在整个主窗口的最底端,在需要的时候显示,不需要的时候隐藏。但是,我对CListView的用法不是很熟悉,在查MSDN和从网上查相关用法的时候,要不就是零星地介绍,要不就是只介绍CListCtrl的用法,这让我走了很多弯路,为此,我将从网上查到的用法,结合我的实际应用,简
阅读全文
摘要:摘自网络:MFC 中 Tooltip 实现的几种方式方法一: 利用CWnd本身自身支持的tooptip来实现,这种方法适用给控件增加tooltip,非常方便和简单方法如下: 1、在窗口中增加消息映射ON_NOTIFY_EX(TTN_NEEDTEXT, 0, SetTipText) SetTipText是个回调函数,名字叫什么无所谓,符合原型就行了,原型下面会说。 2、EnableToolTips(TRUE),使用这个方法调用这个函数是必不可少的.建议在CDialog::OnInitDialog调用。3、在窗口中增加一个函数用于动态提供显示内容,其原型为 BOOL SetTipText(UIN.
阅读全文
摘要:转自:http://blog.csdn.net/xiaoyun8822/article/details/7939605一般我们使用的框架是VC提供的Wizard生成的MFC App Wizard(exe)框架,无论是多文档还是单文档,都存在指针和句柄获取和操作问题。本文中将针对各类句柄的获得、指针的获得以及MFC中常见应用进行阐述并举例。本文内容索引:=========================================================MFC中获取常见类句柄<视图类,文档类,框架类,应用程序类>MFC中获取窗口句柄及相关函数MFC获取控件句柄MFC各类中
阅读全文
摘要:摘要:关于在MFC中将窗口最小化到托盘~~步骤/方法 (一) 原理 1、最小化的原理:首先要将窗口隐藏,然后在右下角绘制图标。 2、恢复的原理:将窗口显示,再将托盘中的图片删除。 (二)程序实现 1、自定义消息WM_SHOWTASK: #define WM_SHOWTASK (WM_USER +1) 2、在MFC的 ::OnSysCommand(UINT nID, LPARAM lParam) 函数体中增加一个命令响应 if(nID==SC_MINIMIZE) ToTray(); //最小化到托盘的函数 3、在消息映射中添加 ON_MESSAGE(WM_SHOWTASK...
阅读全文
摘要:void CbuttonDlg::OnLButtonDown(UINT nFlags, CPoint point) { // TODO: 在此添加消息处理程序代码和/或调用默认值 CMenu menu;//菜单 CMenu* pPopupMenu;//菜单指针 CBitmap m_bitmap1,m_bitmap2,m_bitmap3;//位图menu.LoadMenu(IDR_MENU1);//加载ID为IDR_MENU1的菜单 m_bitmap1.LoadBitmap(IDB_BITMAP1);//加载ID为IDB_BITMAP1的位图 m_bitmap2.LoadBitmap(IDB_B
阅读全文
摘要:目标:窗体的形状要是任意的,取自于位图形状。在任务栏不显示图标,且在托盘处有显示,并能有消息处理,比如右键单击有菜单可以控制。程序退出时,托盘处不能遗留图标。窗体可以控制在最顶层。窗体可任意拖动。。。1.让窗体为图片中形状的窗体图片修改如下:背景色 → (0,0,255) 其他颜色当然可,最好是(255,0,0)(0,255,0)(0,0,255)这三种色。步骤:1.建一个MFC应用程序基于对话框,比如MyPet. (生成三个类CAboutDlg,CMyPetApp,CMyPetDlg)2.为CMyPetDlg添加变量:HBITMAP hBitmap; CBitmap m_bitmap; CS
阅读全文
摘要:将BMP转换成ICON图标方法一、HICON HICONFromCBitmap( CBitmap& bitmap) { BITMAP bmp; bitmap.GetBitmap(&bmp); HBITMAP hbmMask = ::CreateCompatibleBitmap(::GetDC(NULL), bmp.bmWidth, bmp.bmHeight); ICONINFO ii = {0}; ii.fIcon = TRUE; ii.hbmColor = bitmap; ii.hbmMask = hbmMask; HICON hIcon = ::CreateIcon...
阅读全文
摘要:转自:http://blog.163.com/qiubing555@yeah/blog/static/161669431201136560948/1,添加一个资源,选择menu;2,在菜单中写入自己的菜单选项,如关于 版本 等信息添加菜单项:关于 版权 想你了 ID:xiangni 等信息3 将菜单加入对话框,即可显示。方法:打开对话框,右键属性,选择刚才的菜单即可。———————————————分割线,下面就加入单击时的鼠标响应1,将菜单加入类鼠标单击菜单选项,加入要显示的类,这里选择已有的类,选择要添加的对话框的类2比如这里选择要显示的对话框的类:C***App3在对话框初始化函数中添加.
阅读全文
1

浙公网安备 33010602011771号