MFC
风清扬_jd
专注搬砖
展开
-
如何查找窗体,获取窗体的句柄,Hwnd FindWindow函数
/*CWnd::FindWindowstatic CWnd* PASCAL FindWindow( LPCTSTR lpszClassName, LPCTSTRlpszWindowNa- me );返回值:标识了具有指定的类名或窗口名的窗口。如果没有找到这样的窗口,则返回NULL。返回的CWnd*值可能是临时的,不能被保存以供将来使用。参数: lpszC原创 2013-09-29 22:46:12 · 17038 阅读 · 0 评论 -
如何创建不规则窗体
BOOL CEllispseDialogDlg::OnInitDialog(){CDialog::OnInitDialog();CRect rcDialog ;GetClientRect(rcDialog );// Create region and assign to window .CRgn m_rgn; m_rgn.CreateElliptic原创 2013-10-21 11:50:47 · 988 阅读 · 0 评论 -
如何判断鼠标按下的点是否在指定矩形区域CRect
void CXXDlg::OnLButtonDown(UINT nFlags, CPoint point){ CRect rect(0,0,100,50); //创建一个矩形区if (rect.PtInRect(point)) //判断该点是否在此矩形区内{AfxMessageBox(_T("Test"));}CDialog::OnLButtonDown(n原创 2013-10-21 13:51:50 · 3334 阅读 · 0 评论 -
Unicode 转换为ANSI字符集的转换方法
// 将Unicode 转换为ANSI wchar_t *szwSource = L"test string"; USES_CONVERSION; LPSTR szDest = W2A(szwSource);//CString str = L"test string";//USES_CONVERSION;//LPSTR szDest = W2A(str);原创 2013-10-28 16:52:10 · 4184 阅读 · 0 评论 -
如何将CString对象放到剪切板SetClipboardData
//如何将CString 宽字节对象放到剪切板CString str = _T("欢迎来到东东博客!");if (::OpenClipboard(m_hWnd)) {::EmptyClipboard();//int n = str.GetLength()*2 +2;//多字符集实际字符长度HANDLE hData = ::GlobalAlloc(GMEM_MO原创 2013-10-21 15:24:54 · 2118 阅读 · 0 评论 -
PeekMessage&GetMessage
PeekMessage与GetMessage的对比相同点:PeekMessage函数与GetMessage函数都用于查看应用程序消息队列,有消息时将队列中的消息派发出去。不同点:无论应用程序消息队列是否有消息,PeekMessage函数都立即返回,程序得以继续执行后面的语句(无消息则执行其它指令,有消息时一般要将消息派发出去,再执行其它指令)。Get转载 2014-01-10 12:44:32 · 587 阅读 · 0 评论 -
【VS2010】CString类型转换
一、CString 转换为const char *转自:http://hi.baidu.com/lowen_pig/blog/item/8227b632cf441488a9018ef0.html由于是2010,所以2005 08版本的方法貌似不能用了,贴一个最新的方法,经测试可以使用。若你工程默认是使用多字节字符集,无需转换。否则,涉及UniCode和ANSI转换。转载 2014-01-10 12:41:30 · 1788 阅读 · 0 评论 -
vc中通过MSXML操作XML文件
http://www.codeproject.com/cpp/C___XML_wrapper.asp对XML文件操作的时候,先安装XML解析器,并要到进行初始话,然后就可以用下面的封装好的类对XML文件进行读和写的操作了.初始话很简单(和ADO的初始话工作类似),下边以基于对话框的工程(TEST)为例,进行初始话只要在TEST.CPP的InitInstance()方法中加入转载 2014-01-15 23:20:09 · 978 阅读 · 0 评论 -
CMFCImageEditorDialog 对话框的应用。图像编辑控件
/* CMFCImageEditorDialog(CBitmap* pBitmap, CWnd* pParent = NULL, int nBitsPixel = -1); // standard constructor pBitmap 传入要修改位图的指针 处理完毕之后会返回该位图指针,通过Dc绘制可以看出其改变之后的效果 */ //第一种方法: CBitmap btm; btm.LoadBitmap(IDB_BITMAP1); HBITMAP hBmpCopy = (HBIT原创 2014-01-24 10:34:24 · 1543 阅读 · 0 评论 -
如何设置已经创建的ComBoBox为CBS_DROPDOWNLIST样式
CFont *pfont = GetFont();RECT windowExtents;m_comBox.GetWindowRect(&windowExtents);ScreenToClient(&windowExtents); //防止ComBoBox错位m_comBox.DestroyWindow();m_comBox.Create(WS_EX_NOPARENTNOTI原创 2014-02-20 15:19:33 · 2663 阅读 · 0 评论 -
强制关闭一个进程TerminateProcess
CString strProName; //xx.exe 进程名称if (strProName.IsEmpty()) { AfxMessageBox(_T("进程名字不能为空!")); return; } HANDLE SnapShot, ProcessHandle; SHFILEINFO shSmall; PROCESSENTRY32 ProcessInfo;原创 2014-06-02 16:33:38 · 4064 阅读 · 0 评论 -
msdn自带的一个利用CString的Tokenize函数进行分词的例子
// typedef CStringT>> CAtlString;CAtlString str(_T("%First Second#Third"));CAtlString resToken;int curPos = 0;resToken= str.Tokenize(_T("% #"),curPos);while (resToken != _T("")){ _tprintf_s(翻译 2014-07-15 16:02:12 · 6247 阅读 · 0 评论 -
这是微软自带的一个利用cimage进行截图的例子,值得看看
struct CaptureData{BOOL bCaptureFullScreen;char szCapturePath[MAX_PATH]; // no unicode path supportchar szCaptureFilename[MAX_PATH];};翻译 2014-05-30 12:14:14 · 1876 阅读 · 0 评论 -
如何启动一个程序一附加命令行选项启动(创建进程以命令行附加方式 配置 其他启动项)
PROCESS_INFORMATION pi;STARTUPINFO si;memset(&si,0,sizeof(si));si.cb=sizeof(si);si.wShowWindow=SW_SHOW;si.dwFlags=STARTF_USESHOWWINDOW;// Spawn Process B. //创建进程以命令行附加方式 配置 其他启动项CString str原创 2014-05-30 14:41:26 · 2546 阅读 · 0 评论 -
微软帮助自带的弹出文件浏览对话框SHBrowseForFolder
HRESULT hr; LPITEMIDLIST pItemList; BROWSEINFO browseinfo; TCHAR path[MAX_PATH]; hr = ::CoInitializeEx(NULL, COINIT_APARTMENTTHREADED); if (FAILED(hr)) { TRACE("CoInitEx failed: %x\n", hr); r翻译 2014-05-30 12:20:08 · 909 阅读 · 0 评论 -
MFC2010自带的一个字符集转换函数UTF8ToString(LPCSTR lpSrc, CString& strDst, int nLength)
int __stdcall CMFCControlContainer::UTF8ToString(LPCSTR lpSrc, CString& strDst, int nLength){LPTSTR lpDst = NULL;int count = ::MultiByteToWideChar(CP_UTF8, 0, lpSrc, nLength, NULL, 0);if (coun原创 2014-05-28 17:00:40 · 1171 阅读 · 0 评论 -
设置在Release模式下调试的方法:
设置在Release模式下调试的方法:1.工程项目上右键 -> 属性2.c++ -> 常规 -〉调试信息格式 选 程序数据库(/Zi)或(/ZI), 注意:如果是库的话,只能(Zi)3.c++ -> 优化 -〉优化 选 禁止(/Od)4.连接器 -〉调试 -〉生成调试信息 选 是 (/DEBUG)转载 2014-11-04 09:27:58 · 1445 阅读 · 0 评论 -
如果根据窗口句柄 或者CWnd指针获取窗口类名
//hwnd窗口句柄CWnd *pFromWnd=CWnd::FromHandle(hwnd);if(pFromWnd){ CRuntimeClass *pClassInfo=pFromWnd->GetRuntimeClass();const char *pClassName=pClassInfo->m_lpszClassName;}原创 2015-04-15 09:39:43 · 8400 阅读 · 0 评论 -
如何在添加新的系统菜单项CMenu
BOOL CEllispseDialogDlg::OnInitDialog(){CDialog::OnInitDialog();// 将“关于...”菜单项添加到系统菜单中。// IDM_ABOUTBOX 必须在系统命令范围内。ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX原创 2013-10-21 12:12:40 · 1197 阅读 · 0 评论 -
如何在对话框中创建工具栏CToolBar
1、定义一个CToolBar m_wndtoolbar2、插入工具栏资源 3、BOOL CEllispseDialogDlg::OnInitDialog(){CDialog::OnInitDialog();if (!m_wndtoolbar.CreateEx( this,TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_AL原创 2013-10-21 12:33:21 · 1569 阅读 · 0 评论 -
如何在任务栏添加托盘图标
1、在头文件定义NOTIFYICONDATA m_IconData;2、BOOL CXXDlg::OnInitDialog(){CDialog::OnInitDialog();m_IconData.cbSize=sizeof(NOTIFYICONDATA);m_IconData.hIcon=m_hIcon;//图标句柄m_IconData.hWnd=th原创 2013-10-21 13:01:26 · 1764 阅读 · 0 评论 -
如何在CStringArray 数组中添加元素,遍历输出元素
CStringArray arrStr; //声明字符串数组int i;CString strTmp;for (i = 0 ; i {strTmp.Format(_T("%d"), i);arrStr.Add(strTmp);//末未添加元素}for(i = 0;i {AfxMessageBox(arrStr.GetAt(i));}原创 2013-09-20 13:54:15 · 5521 阅读 · 1 评论 -
如何动态设置picture控件的图标
//首先要将picture属性 TYPE设置为ICOCStatic *pStatic = (CStatic*)GetDlgItem(IDC_STATIC); //IDC_STATIC picture控件的Idif (pStatic != NULL){ HICON &hIco = AfxGetApp()->LoadIcon(IDR_MAINFRAME); //IDR_MAINFR原创 2013-09-20 14:29:03 · 1807 阅读 · 0 评论 -
CArray使用简单介绍,如何添加标准数据类型,和自定义的类,或者自定义数据类型
// arry.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "arry.h"#ifdef _DEBUG#define new DEBUG_NEW#endif#include using namespace std;class CTest{public:CTest(){};原创 2013-09-20 14:05:41 · 1999 阅读 · 0 评论 -
如何动态设置Picture图形控件的位图
由于picture控件是由CStatic创建而来的,所以CStatic::CreateBOOL Create( LPCTSTR lpszText, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID = 0xffff );返回值:如果成功则返回非零值;否则返回0;参数:lpszText原创 2013-09-20 14:20:31 · 1577 阅读 · 0 评论 -
如何弹出文件打开对话框CFileDialog
CFileDialog::CFileDialogCFileDialog(BOOL bOpenFileDialog,LPCTSTR lpszDefExt = NULL,LPCTSTR lpszFileName = NULL,DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,LPCTSTR lpszFilter = N原创 2013-09-23 20:45:22 · 2459 阅读 · 0 评论 -
如何关闭应用程序本身 通过PostMessage函数可以实现
void CTestBitmapDlg::OnBnClickedOk(){this->PostMessage(WM_CLOSE,0,0); //发送消息,WM_CLOSE关闭本程序}原创 2013-09-23 20:52:34 · 1783 阅读 · 0 评论 -
如何得到CBitmap对象加载的位图结构信息,例如长度和宽度,
CPaintDC dc(this); // 用于绘制的设备上下文m_bitmap.LoadBitmap(IDB_BITMAP1);m_mdc.CreateCompatibleDC(&dc);m_mdc.SelectObject(&m_bitmap);BITMAP bitmap;ZeroMemory(&bitmap,sizeof(bitmap));m_bitmap.G原创 2013-09-23 20:36:43 · 2215 阅读 · 0 评论 -
如何弹出文件另存为对话框CFileDialog
CString StrFilter = _T("文本文件(*.txt)|*.txt|All Files (*.*)|*.*||"); //文件类型过滤器 //弹出文件另存为对话框 CFileDialog dlg(FALSE,_T("*.TXT"),NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,StrFilter);dlg.DoModa原创 2013-09-23 20:48:03 · 2401 阅读 · 0 评论 -
如何弹出颜色选择对话框,CColorDialog,并且获得当前选择的颜色
CColorDialog dlg;if(dlg.DoModal( ) == IDOK){ COLORREF color; color = dlg. GetColor( ); //得到当前选择的颜色}原创 2013-09-25 13:00:45 · 2213 阅读 · 0 评论 -
如何得到ClistBox当前选择的内容,以及如何初始化CListBox.删除当前选择的内容
//在对话框头文件添加如下变量xx.h1、CListBox m_listBox;2、在对话框的.cpp文件中void CTestBitmapDlg::DoDataExchange(CDataExchange* pDX){CDialog::DoDataExchange(pDX);DDX_Control(pDX, IDC_LIST1, m_listBox); //添加此段代码,原创 2013-09-26 19:48:24 · 4853 阅读 · 1 评论 -
如何加载和显示位图bitblt
CPaintDC dc(this); // 用于绘制的设备上下文CBitmap bitmapTmp;bitmapTmp.LoadBitmap(IDB_BITMAP1); //加载位图CDC memDc;memDc.CreateCompatibleDC(&dc); //创建兼容位图DCmemDc.SelectObject(&bitmapTmp); //载入设备环境原创 2013-09-26 19:27:53 · 2130 阅读 · 0 评论 -
MFC多文档程序如何关闭子窗体, MDIDestroy();
1、在子框架1、class CMainFrame : public CMDIFrameWnd{DECLARE_DYNAMIC(CMainFrame)public:CMainFrame();//..........};类中添加一个菜单命令例如:关闭子窗体,则命令响应函数添加如下代码2、响应函数void CChildFrame::OnCloseMDi()原创 2013-09-26 20:21:58 · 3981 阅读 · 0 评论 -
如何创建按钮CButton
CButton::CreateBOOL Create(LPCTSTR lpszCaption,DWORD dwStyle,const RECT& rect,CWnd* pParentWnd,UINT nID);返回值:调用成功时返回非零值,否则为0。参数:lpszCaption指定按钮控件上的文本。dwStyle指翻译 2013-09-29 22:33:40 · 1851 阅读 · 0 评论 -
CButtonST类简介
CButtonST类简介1 本章精华CButtonST是功能非常全的CButton派生类,利用它你可以实现各种按钮的效果,它包括的特征如下:1、 CButton所有的功能2、 文字和图标按钮3、 16×16,32×32,48×48,16或256色图标的支持4、 支持透明按钮5、 支持标准的或新的平面按钮风格6、 运行时刻按钮风格的变换7、 鼠标悬浮在按钮上时图标转载 2013-10-25 14:34:11 · 776 阅读 · 0 评论 -
如何得到按钮的指针CButton
//根据ID获取其他控件指针的方法和下面相同//如何根据控件的ID得到其控件的指针CButton *pBtn = (CButton *)GetDlgItem(IDC_BUTTON1);if (pBtn->m_hWnd != NULL){//do something//eg: 设置按钮的标题 //指针得到了,想干什么都可以了pBtn->Se原创 2013-10-19 17:25:28 · 1781 阅读 · 0 评论 -
如何加载显示jpg ,png bmp等图片,利用CImage
利用CImage类void CXXDlg::OnPaint(){CPaintDC dc(this); CImage img; img.Load(_T("Test.jpg")); //加载图片 img.Draw(dc.m_hDC,0,0); //绘图}原创 2013-10-19 16:56:36 · 1603 阅读 · 0 评论 -
如何禁止编辑框输入汉字CEdit
1、自定义编辑框 基类是CEdit处理如下几个函数一、void CZWEdit::OnSetFocus(CWnd* pOldWnd){ CEdit::OnSetFocus(pOldWnd); ImmAssociateContext(this->m_hWnd, NULL); // 不允许输入汉字 此时会屏蔽输入法,只会输入英文字符}二、LRESULT CZWEdit::WindowProc(UINT message, WPARAM wParam, LPARAM lParam){原创 2013-10-19 16:39:59 · 4694 阅读 · 0 评论 -
关于cfile fopen fopen_s 在windows vista win7 win8 win 10系统盘目录创建文件失败解决方案-- fopen 创建文件失败
由于windows vista win7 win8 win 10 添加了UAC权限,所以会导致 在系统盘下 创建文件失败。返回拒绝访问错误。解决办法如下:UAC是微软为了提高Windows的安全性,自Windows Vista开始引入的新安全机制。传统的NT内核系统依靠access token来做权限处理,access token由当前用户所在的用户组的权限决定原创 2015-10-20 23:53:32 · 3733 阅读 · 0 评论