MFC
厚积而博发
这个作者很懒,什么都没留下…
展开
-
MFC 写艺术字
//艺术字体void CGameScore::DrawTextString(CD3DDevice * pD3DDevice, LPCTSTR pszString, D3DCOLOR crText, D3DCOLOR crFrame, LPRECT lpRect,UINT nFormat){//定义字体CD3DFont escapeFont;escapeFont.CreateFo原创 2014-09-19 17:07:45 · 1580 阅读 · 0 评论 -
MFC做一个可以自定义背景色的方框
//刷新背景 pDC->FillRect(CRect(rcScore.left-6,rcScore.top-5,rcScore.right+5,rcScore.top-5+24L),&m_brBrush);、、tia pDC->Draw3dRect(rcScore.left-6,rcScore.top-5,rcScore.Width()+12,24L,crColorBorad,crCo原创 2014-11-19 15:53:10 · 437 阅读 · 0 评论 -
定义的按钮类继承CBUTTON类修改光标显示时不能够正常的修改
在自定义的按钮类创建的时候 SetClassLongPtr(m_hWnd, GCLP_HCURSOR, (LONG)AfxGetApp()->LoadStandardCursor(IDC_HAND));原创 2014-11-18 09:21:31 · 375 阅读 · 0 评论 -
创建窗口,去掉某一固定颜色区域的方法。
在 创建窗口的时候加入这一段代码 m_ImageBack为加载背景图片后的位图变量。 CRgn ImageRgn; m_ImageBack.CreateImageRegion(ImageRgn,RGB(255,0,255)); SetWindowRgn(ImageRgn, FALSE); ImageRgn.DeleteObject();原创 2014-11-27 09:13:36 · 583 阅读 · 0 评论 -
MFC打开连接QQ对话框的方法
//创建网页控件 CPlatformPublicize m_PlatformPublicize; //浏览控件 m_PlatformPublicize.Create(NULL,NULL,WS_CHILD|WS_VISIBLE|WS_CLIPCHILDREN,CRect(0,0,0,0),this,IDC_WEB_USERBDNET); //构造地址 TCHAR szB原创 2014-12-01 16:02:28 · 499 阅读 · 0 评论 -
读取HTML返回值的一个方法
//调用方法BOOL bRecv = HttpSend(TEXT("192.168.1.230"),TEXT("Material/ValidateWhiteList.aspx?"),TEXT("uID=1426&name=96E79218965EB72C92A549DD5A330112"),TRUE);void DisplayStat(LPSTR lBuffer){ Outpu转载 2014-12-02 21:24:39 · 1500 阅读 · 0 评论 -
MFC 获取字符串的长度方法
//chInfo为字符,nWidth为字体的宽度int GetCharLength(TCHAR chInfo, int nWidth){ if( chInfo >= 0xA0 )//全角 中文 { return nWidth; } else //半角 英文 { return nWidth/2; } }转载 2014-12-02 21:33:21 · 2018 阅读 · 0 评论 -
MFC一个非常明显的创建字体的方法
LOGFONT lf; //定义字体结构 lf.lfWeight=10; //字体磅数=10 lf.lfHeight=17; //字体高度56 lf.lfWidth=20; //字体宽度20 lf.lfUnderline=TRUE;转载 2014-12-02 21:21:05 · 864 阅读 · 0 评论 -
MFC 解决光标闪烁问题
这里只针对CWnd窗口以及其子窗口通过继承并改写函数virtual BOOL PreCreateWindow(CREATESTRUCT& cs);BOOL PreCreateWindow(CREATESTRUCT& cs){ // 创建自己的窗口类,窗口不设置光标,以便根据需要进行设置 if (cs.lpszClass == NULL) cs.lpszClass =转载 2014-12-02 21:37:44 · 1006 阅读 · 0 评论 -
MFC 滚动字幕添加
实现文件#include "Stdafx.h"#include "SkinScroll.h"#include "SkinRenderManager.h"#include "SkinResourceManager.h"#include "Resource.h"#define FONT_HEIGHT 20 //字体高度#define FONT_WIDTH 14原创 2014-12-19 09:35:57 · 1723 阅读 · 0 评论 -
解决窗口响应鼠标离开事件,在鼠标移动的地方添加信息注册
捕捉鼠标停留WM_MOUSEHOVER和离开WM_MOUSELEAVE消息当鼠标停留在程序窗口一定时间后,会产生一个WM_MOUSEHOVER消息;当鼠标离开程序窗口后,会产生一个WM_MOUSELEAVE消息。鼠标离开程序窗口的消息一般很少用,想了半天也想不到在什么情况下会用到这个消息。到是鼠标停留消息会经常用到,比如需要对程序中的某些操作进行提示时,就需要用到WM_MOUSEH转载 2014-12-25 13:54:54 · 826 阅读 · 0 评论 -
SystemParametersinfo系统配置的获取
该函数查询或设置系统级参数。该函数也可以在设置参数中更新用户配置文件。//函数原型BOOL SystemParametersinfo(UINT uiAction,UINT uiParam,PVOID pvParam,UINT fWinlni);//实际用法举例 //获取位置 CRect rcArce; SystemParametersInfo(SPI_GETWOR转载 2015-01-05 17:03:28 · 1784 阅读 · 0 评论 -
windows下的托盘编程(Shell_NotifyIcon)
添加和删除托盘图标BOOL AddNotificationIcon(HWND hwnd){ NOTIFYICONDATA nid = {sizeof(nid)}; nid.hWnd = hwnd; // add the icon, setting the icon, tooltip, and callback message. // the icon转载 2015-02-27 17:15:17 · 970 阅读 · 0 评论 -
总结了两种绘画透明窗体的方法,都有些缺陷,能适用一般情况
1.使用屏蔽绘画函数方法 窗口属性修改ModifyStyleEx(WS_EX_LAYERED, 0);//去除Onpaint函数响应; 刷新窗口采用UpdateLayeredWindow; 缺点:控件因为窗口不能刷新,使得windows自带控件不能使用,需重写应用控件,在不需要控件或则不需要复杂控件时使用。void DrawUI() { HDC hDC=::GetD转载 2015-10-22 17:57:22 · 450 阅读 · 0 评论 -
OnEraseBkGnd的使用
在OnEraseBkGnd中,如果你不调用原来缺省 的OnEraseBkGnd只是重画背景则不会有闪烁.而在OnPaint里面, 由于它隐含的调用了OnEraseBkGnd,而你又没有处理OnEraseBkGnd 函数,这时就和窗口缺省的背景刷相关了.缺省的 OnEraseBkGnd操作使用窗口的缺省背景刷刷新背景(一般情况 下是白刷),而随后你又自己重画背景造成屏幕闪动.转载 2014-10-16 16:44:11 · 657 阅读 · 0 评论 -
VC++动态链接库(DLL)编程
1.概论 先来阐述一下DLL(Dynamic Linkable Library)的概念,你可以简单的把DLL看成一种仓库,它提供给你一些可以直接拿来用的变量、函数或类。在仓库的发展史上经历了“无库-静态链接库-动态链接库”的时代。 静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib中的指令都被直接包含在最终生成的EXE文件中了。但是若使用DLL,该D转载 2014-10-16 15:16:40 · 246 阅读 · 0 评论 -
vs实现输出
COUT输出#ifdef DEBUGAllocConsole(); freopen("CONOUT$","w+t",stdout); freopen("CONIN$","r+t",stdin); #endif 弹窗口在引擎类中添加此条语句可以帮助实现输出显示。char buffer[32];sprintf(buffer,"wChairIDTemp:原创 2014-08-25 11:56:49 · 1190 阅读 · 0 评论 -
MFC 写文档的方法
void Debug(char *text,...){static DWORD num=0; char buf[1024]; FILE *fp=NULL; va_list ap; va_start(ap,text); vsprintf(buf,text,ap); va_end(ap); if(num == 0) { fp=fopen("文件名.log",原创 2014-08-29 19:14:01 · 293 阅读 · 0 评论 -
宏CONTAINING_RECORD,根据成员指针获取结构体指针
宏CONTAINING_RECORD的用处其实还是相当大的, 而且很是方便, 它的主要作用是: 根据结构体中的某成员的指针来推算出该结构体的指针! 下面从一个简单的例子开始说起: 我们定义一个结构体, 同时类型化:typedef struct{ int a; int b; int c;}ss; 这是一个很简单的结构体, 没什么特殊的转载 2014-09-12 12:54:01 · 486 阅读 · 0 评论 -
MFC 重写SKINGBUTTON类实现按钮上写文字和绘画图片
//实现#include "stdafx.h"#include "Prompt.h"#include ".\Prompt.h"//消息定义#define IDM_EXIT WM_USER+101//离开消息///////////////////////////////////////////////////////////////////////////原创 2014-08-29 19:03:56 · 481 阅读 · 0 评论 -
动态联编
基本:联编就是将模块或者函数合并在一起生成可执行代码的处理过程,同时对每个模块或者函数调用分配内存地址,并且对外部访问也分配正确的内存地址,它是计算机程序彼此关联的过程。按照联编所进行的阶段不同,可分为两种不同的联编方法:静态联编和动态联编。 静态联编是指在编译阶段就将函数实现和函数调用关联起来,因此静态联编也叫早绑定,在编译阶段就必须了解所有的函数或模块执行所需要检测的信息,它对函数转载 2014-08-29 19:08:54 · 809 阅读 · 0 评论 -
vs2003快捷键
Ctrl+l:删除当前行; Ctrl+Enter:插入当前行: shift+F7查看到设计器; F7到代码: 开始运行,不调试:Ctrl+F5 重新生成解决方案:Ctrl+Shift+B 增加一个新项:Ctrl+Shift+A 到html设计器:Ctrl+PageDow转载 2014-08-29 19:08:50 · 321 阅读 · 0 评论 -
简单实现窗口拖动
简单的实现窗口拖拽在OnLButtonDown中加上一句话。如下: void CTsDlg::OnLButtonDown(UINT nFlags, CPoint point) { SendMessage(WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM(point.x, point.y));或者SendMessage( WM_NC原创 2014-08-29 19:16:14 · 469 阅读 · 0 评论 -
MFC 滑动条实现
//#include "Stdafx.h"#include "Math.h"#include "Resource.h"#include "GoldControl.h"#include ".\goldcontrol.h"////////////////////////////////////////////////////////////////////////////宏原创 2014-08-29 19:00:26 · 589 阅读 · 0 评论 -
解决MFC做的工程项目刷新速度慢导致动画播放卡的问题
采用多个窗口绘画,把一些原创 2014-10-11 13:00:07 · 1463 阅读 · 0 评论 -
解决VS系列按ALT+G不能跳转问题
需要清理该工程内的,删除掉NCB文件,APS文件之类,重新生成,原创 2014-10-11 12:58:03 · 1621 阅读 · 0 评论 -
DrawText中的自动换行功能
DrawText中的自动换行功能 使用DrawText函数输出文字,如果需要让输出的内容在指定矩形内自动换行,则可以使用DT_WORDBREAK选项。但根据API说明,该选项只能截断单词,即只在单词间的空格处分割。如果输出内容是一长串没有空格分隔的ASCII码(如英文字符或数字),那么该长串会被当做一个单词来处理而不会自动换行(中文字符没有此问题)。如果要让ASCII码组转载 2014-11-18 09:14:15 · 7802 阅读 · 0 评论 -
计算件的大小和获取下载速度
//获取文件的大小,并以KB 或 MB 来表示 CString GetFileSize(LONG size) { CString _size; //判断大小有没有超过1 if (size { _size.Format("%.2lfKB",size/1024.0); }else if(1024*1024*1024) {原创 2014-11-19 10:05:47 · 659 阅读 · 0 评论 -
VS常用快捷键
1 注释选中的部分 Ctrl+K,C2 取消注释的部分 Ctrl+K,U3 设置断点 F9 取消此行的断点就再按一次F94 取消全部断点 Ctrl+Shift+F95 格式化一段代码 (1)选中代码. 剪切. 粘贴 (2)选中代码,alt+F86 (VC++6.0)从转载 2014-10-16 17:48:26 · 378 阅读 · 0 评论 -
vs如何添加自定义字体
1.首先通过资源管理器添加字体资源FONTNAME.ttf, 资源类型为”->"8"或者"RT_FONT”2.字体资源添加函数void InstallResourceFont(HINSTANCE hResInstance, LPCTSTR lpsFont, LPCTSTR lpsType) { HRSRC hRes = FindResource(hResInstance, lp原创 2016-08-18 11:21:15 · 10564 阅读 · 0 评论