• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
 






C++是神码东东。。。

Nothing to Say
 
 

Powered by 博客园
博客园 | 首页 | 新随笔 | | 订阅 订阅 | 管理

随笔分类 -  MFC

1 2 下一页

 
转:CWnd的函数,以后可以在这儿找了!
摘要:CWndCObject└CCmdTarget└CWndCWnd类提供了微软基础类库中所有窗口类的基本功能。CWnd对象与Windows的窗口不同,但是两者有紧密联系。CWnd对象是由CWnd的构造函数和析构函数创建或销毁的。另一方面,Windows的窗口是Windows的一种内部数据结构,它是由CWnd的Create成员函数创建的,而由CWnd的虚拟析构函数销毁。DestroyWindow函数销毁Windows的窗口,但是不销毁对象。CWnd类和消息映射机制隐藏了WndProc函数。接收到的Windows通知消息通过消息映射被自动发送到适当的CWnd OnMessage成员函数。你可以在派生类 阅读全文
posted @ 2013-10-23 19:03 凨丶 阅读(1882) 评论(0) 推荐(0)
MFC资源冲突解决方法
摘要:AFX_MANAGE_STATE(AfxGetStaticModuleState())先看一个例子:1、创建一个动态链接到MFC DLL的规则DLL,其内部包含一个对话框资源。指定该对话框ID如下:#define IDD_DLL_DIALOG20002、创建一个基于对话框的mfc应用程序,它包含两个对话框资源,IDD_UI_DIALOG和IDD_EXE_DIALOG。并将后者的ID指定如下:#define IDD_EXE_DIALOG2000其中前者是这个应用程序的用户界面,单击上面的按钮,将弹出一个对话框。部分代码如下:// in DLLvoid CDLL::ShowDlg(void){CD 阅读全文
posted @ 2013-10-13 02:12 凨丶 阅读(2349) 评论(0) 推荐(0)
MFC窗口和控件大小等比例变化
摘要:第一步:OnInitDialog里保存对话框及其所有子窗体的Rect区域 1 CRect rect; 2 GetWindowRect(&rect); 3 listRect.AddTail(rect);//对话框的区域 4 5 CWnd* pWnd = GetWindow(GW_CHILD);//获取子窗体 6 while(pWnd) 7 { 8 pWnd->GetWindowRect(rect);//子窗体的区域 9 m_listRect.AddTail(rect); //CList m_listRect成员变量10 pWnd = ... 阅读全文
posted @ 2013-06-27 20:55 凨丶 阅读(6069) 评论(3) 推荐(1)
MFC下调用控制台和控制台下MFC库的支持
摘要:1.MFC下调用控制台在CWinApp的InitInstance中对话框的DoModal之前加入1 AllocConsole(); // 开辟控制台2 SetConsoleTitle(_T("测试窗口")); // 设置控制台窗口标题3 freopen("CONOUT$","w",stdout); // 重定向输出4 freopen( "CONIN$", "r+t", stdin ); // 申请读在CWinApp的Exit... 阅读全文
posted @ 2013-06-25 00:15 凨丶 阅读(6654) 评论(0) 推荐(0)
EXE文件格式判断
摘要:可能很多的人都没有注意到一些事情,就是你的程序是不是合法的可运行的应用程序,例如一个文件只是把后缀改成 .exe 的形式就显示为应用程序的图标了! 你不想写一个根据后缀名就确定应用程序类型的程序吧!这样太哪个了吧!解决方法就是根据PE文件格式来解释。关于PE文件格式的资料现在网上汗牛充栋,这里我就不再解释,有兴趣的朋友可以上网查阅PE文件格式资料。我就简单的用代码去演示如何判断PE文件合法,主要就是两个地方,头为"MZ"签名,跟着DOS头部的就是"PE"签名,任何标准的PE文件都会包含这两个签名。如下这段代码所示,这是一个判断是否为合法PE文件的API。 阅读全文
posted @ 2012-11-15 14:32 凨丶 阅读(1473) 评论(0) 推荐(0)
窗口的部分显示与隐藏
摘要:1.添加Picture控件2.将Picture控件拖动成一条线,放到需要界面隐藏的部分的位置3.添加按钮的响应代码 1 static CRect rectSmall, rectBig, rectSeperator;//静态变量保留运行期间的值:隐藏后的矩形,隐藏前的矩形,分割线的矩形 2 if (rectBig.IsRectNull())//判断是否是第一次 3 { 4 GetWindowRect(&rectBig); 5 GetDlgItem(IDC_Seperator)->GetWindowRect(&rectSeperator); ... 阅读全文
posted @ 2012-11-05 13:05 凨丶 阅读(283) 评论(0) 推荐(0)
MFC中获得各个类的指针/句柄的总结(转)
摘要:一般我们使用的框架是VC提供的Wizard生成的MFC App Wizard(exe)框架,无论是多文档还是单文档,都存在指针获取和操作问题。下 面这节内容主要是一般的框架,然后再讲多线程中的指针使用。使用到的类需要包含响应的头文件。首先一般获得本类(视,文档,对话框都支持)实例指针 this,用this的目的,主要可以通过类中的函数向其他类或者函数中发指针,以便于在非本类中操作和使用本类中的功能。 这其中的关键在于理解 m_pMainWnd, AfxGetApp(),AfxGetMainWnd() 的意义!1) 在View中获得Doc指针CYouSDIDoc *pDoc=GetDocumen 阅读全文
posted @ 2012-11-02 10:22 凨丶 阅读(476) 评论(0) 推荐(0)
句柄
摘要:句柄概念在WINDOWS编程中是一个很重要的概念,在许多地方都扮演着重要的角色。但由此而产生的句柄概念也大同小异,比如:<<Microsoft Windows 3 Developer's Workshop>>(Microsoft Press,by Richard Wilton)一书中句柄的概念是:在Windows环境中,句柄是用来标识项目的,这些项目包括: *.模块(module) *.任务(task) *.实例(instance) *.文件(file) *.内存块(block of memory) *.菜单(menu) *.控制(control) *.字体(f 阅读全文
posted @ 2012-11-01 18:19 凨丶 阅读(215) 评论(0) 推荐(0)
CString的成员函数详解
摘要:typedef ATL::CStringT< TCHAR, StrTraitMFC_DLL< TCHAR > > CString;CString的构造函数:1 CString( );2 CString( const CString& stringSrc );3 CString( TCHAR ch, int nRepeat = 1 );4 CString( LPCTSTR lpch, int nLength );5 CString( const unsigned char* psz );6 CString( LPCWSTR lpsz );7 CString( LP 阅读全文
posted @ 2012-10-31 13:04 凨丶 阅读(6972) 评论(4) 推荐(1)
CTabCtrl分页控件的使用
摘要:1.插入三个对话框,ID为默认的IDD_DIALOG1、IDD_DIALOG2、IDD_DIALOG3。设定对话框属性Border:None Style:Child2.双击对话框,为其添加类,CDlg1、CDlg2、CDlg33.在主对话框的头文件中添加对三个对话框类头文件的引用1 #include "Dlg1"2 #include "Dlg2"3 #include "Dlg3"4.在主对话框中添加三个变量:1 CDlg1 m_dlg1;2 3 CDlg2 m_dlg2;4 5 CDlg3 m_dlg3;5.主对话框中添加TabCtr 阅读全文
posted @ 2012-10-30 19:58 凨丶 阅读(5561) 评论(0) 推荐(1)
CListCtrl的使用
摘要:1.添加表头: 定义一个CListCtrl控件的关联变量ListControl,在OnInitDialog()函数里面加上如下代码 1 ////初始化界面 2 ListControl.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT); 3 LONG lStyle; 4 lStyle = GetWindowLong(ListControl.m_hWnd, GWL_STYLE);//获取当前窗口style 5 lStyle &= ~LVS_TYPEMASK; //清除显示方式位 6 lS... 阅读全文
posted @ 2012-10-30 09:47 凨丶 阅读(12330) 评论(0) 推荐(2)
查找窗口、窗口置顶、获取窗口的文本
摘要://窗口置顶 1 CWnd *wnd = CWnd::FindWindow(NULL, _T("test.txt - 记事本"));//通过窗口名 2 3 if (wnd) 4 5 { 6 7 wnd->ShowWindow(SW_NORMAL);//显示窗口 8 9 wnd->SetForegroundWindow();//设为前台窗口10 11 ::SetWindowPos(wnd->m_hWnd,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);//置顶12 13 }如果不用MFC的类,也可以直接用API函数1 阅读全文
posted @ 2012-10-25 15:47 凨丶 阅读(1418) 评论(0) 推荐(0)
Windows API ——SetWindowLong—— 设置窗口样式
摘要:SetWindowLong 函数原型为:LONG SetWindowLong(HWND hwnd,int nIndex,Long dwNewLong);详见MSDN。下面简单总结一下SetWindowLong函数几种常用的地方:1.设置窗口风格 如:SetWindowLong(hWnd, GWL_STYLE, WS_POPUP|WS_BORDER); //有边框的弹出窗口 SetWindowLong(hWnd, GWL_EXSTYLE, WS_EX_TOOLWINDOW);//设置窗口扩展样式为WS_EX_TOOLWINDOW,可以让窗体不在任务栏中显示。2.消息处理函数的转移 对于WINDO 阅读全文
posted @ 2012-10-23 15:45 凨丶 阅读(18697) 评论(0) 推荐(0)
VC常用代码(VS2008下测试过的)
摘要:1.只允许运行程序的一个实例MFC写在InitInstance函数中 HANDLE hMutex = CreateMutex(NULL, TRUE, _T("test"));//创建一个有名的互斥对象 if (ERROR_ALREADY_EXISTS == GetLastError())//如果互斥对象创建失败 { CWnd *wnd;//找到当前允许程序的窗口,第二个程序为窗口名 if( wnd = CWnd::FindWindow(0, _T("ControlDemo"))) { //恢复窗口 wn... 阅读全文
posted @ 2012-10-16 17:59 凨丶 阅读(1034) 评论(0) 推荐(0)
(转载)String,CString,TCHAR*,char*之间区别和联系
摘要:char是类型TCHAR也是!不过他可以通过是否定义了UNICODE宏来判断到底是char还是w_char;TCHAR是一种字符串类型,它让你在以MBCS和UNNICODE来build程序时可以使用同样的代码,不需要使用繁琐的宏定义来包含你的代码,而char代表ASCII的字符1 #ifdef UNICODE2 typedef wchar_t TCHAR;3 #else4 typedef char TCHAR;5 #endif所以用MBCS来build时,TCHAR是char,使用UNICODE时,TCHAR是wchar_t.至于String,CString他们都是一种... 阅读全文
posted @ 2012-09-29 17:57 凨丶 阅读(455) 评论(0) 推荐(0)
只运行一个实例的方法
摘要:在VC++中编程中,只运行一个实例的方法主要有两类:1遍历当前的所有窗口,查找相同的实例。为了便于查找,一般要事先设一个查找标志。2利用系统提供的互斥对象或信标,直接让系统抑制重复的实例。在发现重复运行时,一般还有一个任务,就是激活已经存在的窗口。一、第一类方法的实现下面是一个具体的例子,下图是示例代码运行的情况。部分关键代码1、在App的InitInstance()中枚举所有窗口,查找本程序实例 1 HWND oldHWnd = NULL; 2 3 EnumWindows(EnumWndProc,(LPARAM)&oldHWnd); //枚举所有运行的窗口 4 5 if(oldHW. 阅读全文
posted @ 2012-08-29 11:14 凨丶 阅读(376) 评论(0) 推荐(0)
文件拖拽
摘要:void ChookDlg::OnDropFiles(HDROP hDropInfo){// TODO: 在此添加消息处理程序代码和/或调用默认值// TODO: 在此添加消息处理程序代码和/或调用默认值int DropCount=DragQueryFile(hDropInfo,-1,NULL,0);//取得被拖动文件的数目for(int i=0;i<DropCount;i++){WCHAR wcStr[MAX_PATH];DragQueryFile(hDropInfo,i,wcStr,MAX_PATH);//获得拖曳的第i个文件的文件名ShellExecute(NULL,L" 阅读全文
posted @ 2012-08-23 16:45 凨丶 阅读(209) 评论(0) 推荐(0)
注册表
摘要:存储系统和应用程序的设置信息。1.软硬件的有关配置的初始状态信息和卸载数据2.整个计算机系统的设置、许可协议、文件关联硬部件描述、状态和属性3.性能记录、底层系统状态信息,以及其他数据HKEY_USERS:存放在本地计算机口令列表中的用户标识和密码列表。每个用户的预配置信息都存储在根键中。保存了所有目前登陆用户和缺省用户的设置。登陆用户的改变就如同不同用户使用这个系统,sid是用户信息的表现。使用程序重新找到任何用户的ntuser.dat文件并且把他放如到注册表中观看和编HKEY_CURRENT_USER:包含本地工作站中存放的当前登陆的用户信息,包括用户登陆用户名和暂存密码。登陆时用户信息从 阅读全文
posted @ 2012-08-23 16:44 凨丶 阅读(379) 评论(0) 推荐(0)
开机启动
摘要:C++ (MFC)开机自启动源码(修改注册表) 分类: 2010-01-14 10:28 287人阅读 评论(0) 收藏 举报 CString str; //添加注册表路径 //WCHAR* CurrentPath=(WCHAR*)malloc(sizeof(char)*100);//程序当前路径WCHAR* CurrentPath= new WCHAR[sizeof(WCHAR)*100];//程序当前路径HKEY hRegKey; //注册keyBOOL bResult; //打开注册表返回值str=_T("Software//Microsoft//Windows//Curren 阅读全文
posted @ 2012-08-23 16:44 凨丶 阅读(401) 评论(0) 推荐(0)
向线程投递消息PostThreadMessage
摘要:1 #define WM_MYMSG1 WM_USER+1 2 #define WM_MYMSG2 WM_USER+2 3 4 HANDLE hThread; 5 //DWORD threadID1; 6 UINT threadID2; 7 8 //hThread=::CreateThread(NULL,0,lpFun,this,NULL,&threadID1); 9 hThread=(HANDLE)_beginthreadex( NULL, 0, &lpFun, NULL, NULL, &threadID2);//创建并启动线程10 11 12 char * str= 阅读全文
posted @ 2012-08-23 16:43 凨丶 阅读(546) 评论(0) 推荐(0)
 

1 2 下一页