摘要: //CMyAppEApp初始化BOOLCMyAppEApp::InitInstance(){//如果一个运行在WindowsXP上的应用程序清单指定要//使用ComCtl32.dll版本6或更高版本来启用可视化方式,//则需要InitCommonControls()。否则,将无法创建窗口。InitCommonControls();CWinApp::InitInstance();CMyAppEDlgdlg;//修改这里可以改变启动的对话框.m_pMainWnd=&dlg;INT_PTRnResponse=dlg.DoModal();if(nResponse==IDOK){//TODO:在 阅读全文
posted @ 2013-09-01 16:44 狂师 阅读(1478) 评论(0) 推荐(0) 编辑
摘要: UpdateData() MFC的窗口函数,下面是MSDN的说明; Call this member function to initialize data in a dialog box, or to retrieve and validate dialog data.BOOL UpdateData(BOOL bSaveAndValidate = TRUE );ParametersbSaveAndValidate Flag that indicates whether dialog box is being initialized (FALSE)or data is being retrie 阅读全文
posted @ 2013-09-01 16:21 狂师 阅读(465) 评论(0) 推荐(0) 编辑
摘要: 下面实例是在退出程序点击退出按钮时,在主程序的根目录下生成一个Log记录,用来记录程序的退出时间,具体实现代码与调试代码如下:void CDebugDlg::OnClose(){// TODO: 在此添加消息处理程序代码和/或调用默认值CFile file;CTime time=CTime::GetCurrentTime();CString str1="记录系统退出时间为:";CString str2=time.Format("%y-%m-%d %H:%M:%S");CString str3=" \r\n";unsigned char 阅读全文
posted @ 2013-09-01 15:18 狂师 阅读(523) 评论(0) 推荐(0) 编辑
摘要: 1、创建对话框程序,导入8个图标资源。2、在对话框头文件中声明变量,代码如下:CToolBarm_ToolBar;CImageListm_ImageList;CStringm_TipText;3、在对话框中oninitdialg函数中创建工具栏,如下://创建图像列表m_ImageList.Create(32,32,ILC_COLOR24|ILC_MASK,1,1);//向图像列表中添加图标m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON1));m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON2 阅读全文
posted @ 2013-08-31 16:07 狂师 阅读(939) 评论(0) 推荐(0) 编辑
摘要: 一、工具栏工具栏控件在控件面板里没有对应的选项(图标),但有一个工具栏控件类CToolBar,所以我们如果要创建一个工具栏控件并显示在窗口里的话,只能用代码来完成,事实上任何一种控件,都可以用代码创建,如CButton按钮类,现举一个用代码创建按钮控件并显示在窗口里的例子。CButton类的Create成员函数可以创建一个按钮控件,这个函数的格式如下:BOOL CButton::Create(LPCTSTR lpszCaption,//按钮显示的文本DWORD dwStyle,//按钮样式const RECT& rect,//按钮控件显示的区域(大小)相对于父窗口CWnd* pPare 阅读全文
posted @ 2013-08-31 15:59 狂师 阅读(1529) 评论(0) 推荐(0) 编辑
摘要: MFC中对话框有两种形式,一个是模态对话框(model dialog box),一个是非模态对话框(modeless dialog box)。一、模态对话框(model dialog box) 在程序运行的过程中,若出现了模态对话框,那么主窗口将无法发送消息,直到模态对话框退出才可以发送。 点击模态对话框中的OK按钮,模态对话框会被销毁。创建一个模态对话框的代码:[cpp] view plaincopyprint?//创建一个模态对话框 CTestDialogtd;td.DoModal(); //创建一个模态对话框 CTestDialog td; td.DoModal(); 其中CTest.. 阅读全文
posted @ 2013-08-30 12:35 狂师 阅读(456) 评论(0) 推荐(0) 编辑
摘要: VC中多线程使用比较广泛而且实用,在网上看到的教程.感觉写的挺好.一、问题的提出编写一个耗时的单线程程序: 新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为“延时6秒”,添加按钮的响应函数,代码如下:void CSingleThreadDlg::OnSleepSixSecond(){Sleep(6000); //延时6秒} 编译并运行应用程序,单击“延时6秒”按钮,你就会发现在这6秒期间程序就象“死机”一样,不在响应其它消息。为了更好地处理这种耗时的操作,我们有.. 阅读全文
posted @ 2013-08-29 23:39 狂师 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 分享到一键分享QQ空间新浪微博百度云收藏人人网腾讯微博百度相册开心网腾讯朋友百度贴吧豆瓣网搜狐微博百度新首页QQ好友和讯微博更多...百度分享MFC通过ODBC连接Mysql程序安装建立mysql,连接ODBC以及通过MFC拖控件这些过程网上很多,就不写了,说一下我的mysql中有database mytest 内有表格mytable,如下:1、先通过vs2005建立一个MFC工程,vs自动生成文件如图:2、打开stdafx.h头文件,添加如下语句#include #include “afxdb.h”这两个头文件应该是定义了后面用到的数据库操作类CDataBase、CRecodSet .etc 阅读全文
posted @ 2013-08-29 23:35 狂师 阅读(613) 评论(0) 推荐(0) 编辑
摘要: MFC下DLL编程(图解)DLL(Dynamic Link Library,动态链接库)是微软公司为Windows和OS/2操作系统设计一种供应用程序在运行时调用的共享函数库。DLL是应用程序的一种扩展,也是软件共享和重用的传统方法。DLL除了可同时被多个应用程序共享外,还可以在不改变调用接口(从而不需修改使用它的应用程序)的情况下,改进和升级里面的库函数。而且DLL与编写它的语言无关,例如,用VC生成的规则DLL,可以被VB、Delphi等生成的应用程序使用。DLL可以用多种语言和工具编写,我们这里只介绍如何使用MFC来编写和使用DLL。相关说明文档位于MSDN帮助的“目录\开发工具和语言\ 阅读全文
posted @ 2013-08-29 23:14 狂师 阅读(858) 评论(0) 推荐(0) 编辑
摘要: INI文件的写入与读取[节名] '[]中的节名对应此API的第一参数Name=内容 'Nmae对应此API的第二参数API的第三参数是没有取到匹配内容时返回的字符串;API的第四参数是要返回的字符串;API的第五参数是字符串缓冲的长度,一般255;API的第六参数是INI文件的路径。GetPrivateProfileString("节名","Name","没有获得匹配",s,len(s),你那ini的路径);-------------------------------------------------------- 阅读全文
posted @ 2013-08-28 22:59 狂师 阅读(1913) 评论(0) 推荐(0) 编辑
摘要: ShellExecute(NULL,"open","http://www.sina.com.cn",NULL,NULL,SW_SHOWNORMAL);//ShellExecute(NULL,"open","C:\\Documents and Settings\\Administrator\\桌面\\xq1\\TestChess0.exe",NULL,NULL,SW_SHOWNORMAL);还可以使用一个ShellExecuteEx的函数,在那里可以设置工作目录路径工作中曾经有同事使用了 ShellExecute但是 阅读全文
posted @ 2013-08-27 22:23 狂师 阅读(971) 评论(0) 推荐(0) 编辑
摘要: 用CTime类得到当前日期、时间、星期,格式化(详细讲解)2009/05/12 09:48 A.M.① 定义一个CTime类对象 CTime time;② 得到当前时间 time = CTime::GetCurrentTime();③ GetYear( ),GetMonth( ), GetDay( ), GetHour( ), GetMinute( ), GetSecond( ), GetDayOfWeek( ) 返回整型(int)对应项目④ 将当前时间格式化 CString date = time.Format("%Y-%m-%d %H:%M:%S %W-%A");说明: 阅读全文
posted @ 2013-08-27 21:19 狂师 阅读(1153) 评论(0) 推荐(0) 编辑
摘要: OutPutDebugString()函数的输出则可以用DebugView捕获(DebugView也可以捕获TRACE宏的输出)eg:OutPutDebugString("输出第一调试信息");备注: 先启动了debugview 然后按F5运行我的代码。在开发环境里调试貌似是不行的。你可以编译了你的程序以后,直接运行你的程序,就好了,不要在开发环境里调试运行。要是想在开发环境里看调试信息,在开发环境底部的 "输出"标签就可以看得到(VC),之所以DebugView看不到消息,应该是被开发环境截取了。 阅读全文
posted @ 2013-08-27 21:10 狂师 阅读(459) 评论(0) 推荐(0) 编辑
摘要: 方法一:1、声明成员变量CBrush m_brush;2、在InitDialog中添加代码:?CBitmap bmp;bmp.LoadBitmap(IDB_BITMAP1); //IDB_BITMAP1是图片资源IDm_brush.CreatePatternBrush(&bmp);3、重载对话框的OnCtlColor,改最后的返回值:?1return(HBRUSH)m_brush;方法二:把下面这段代码加进OnPaint()里就行了?CPaintDC dc(this);CBitmap bitmap;bitmap.LoadBitmap(IDB_BITMAP1); //这个IDB_BITM 阅读全文
posted @ 2013-08-26 21:25 狂师 阅读(7064) 评论(0) 推荐(1) 编辑
摘要: 如果我们想实现在MFC对话框中添加状态栏显示,如何例如分状态栏为两列,第一列显示鼠标的当前位置,第二列显示当前的时间,(如上图)。1. 首先,打开在资源视图的String Table并添加两个ID:ID_INDICATOR_NISH 和ID_INDICATOR_TIME,如下图2. 在该对话框的头文件中添加一个CStatusBar类对象CStatusBar m_bar;3. 打开该对话框的cpp文件,并在最顶端添加以下代码:static UINT BASED_CODE indicators[]={ ID_INDICATOR_NISH, ID_INDICATOR_TIME};4. 接... 阅读全文
posted @ 2013-08-25 23:30 狂师 阅读(4528) 评论(0) 推荐(1) 编辑
摘要: 很多人在做MFC界面的时候想要给对话框加入背景图片,很多人都会想到在OnPaint()里面来加一段代码来实现,其实这样做并不怎么科学,因为它会导致窗口不断重绘,在很多项目中窗口会闪烁(比如带播放视频的一个对话框);下面的方法我感觉更为合理。先载入一张图片,ID为IDB_BITMAP2TestDlg.h中:CBrushm_brBk;//在public中定义TestDlg.cpp中:在初始化函数OnInitDialog()中加入:BOOLCTestDlg::OnInitDialog(){CDialog::OnInitDialog();CBitmapbmp;bmp.LoadBitmap(IDB_BI 阅读全文
posted @ 2013-08-13 21:48 狂师 阅读(1185) 评论(0) 推荐(0) 编辑
摘要: 将一个bmp图片添加到资源中在资源视图中更改位图资源的ID为IDB_BITMAP_BACKGROUND。第一种方法:在Dialog中添加一个Picture Control控件,将Picture Control控件的Type属性更改为Bitmap。设置Image属性为IDB_BITMAP_BACKGROUND。这样图片自动加载到窗口中。第二种方法:添加消息函数OnEraseBkgnd在BOOL 类名::OnEraseBkgnd(CDC* pDC)函数中添加如下代码BOOL 类名::OnEraseBkgnd(CDC* pDC){ // TODO: 在此添加消息处理程序代码和/或调用默认值 CRec 阅读全文
posted @ 2013-08-13 18:14 狂师 阅读(746) 评论(0) 推荐(0) 编辑
摘要: 导读: 我们学习Java大概有3个方向,第一,桌面系统,包括C/S结构;第二,J2ME,面向无限领域,很有潜力的家伙,看看中国的手机用户就知道了。第三,面向企业应用、计算的平台,J2EE. 初次涉及Java领域,感觉到Java入门是好像没有C,C++入门快,工具也没有什么Turbo C,Visual C++好用(自己的破机器实在陪不起JBuilder,贪婪的家伙,以后一定要收拾她)。什么JAVA_HOME,CLASSPATH,虚拟机等概念都是初次基础,旁边的人都很少用Java的。感觉Java就是做Applet的。慢慢的知道了http://java.sun.com ,开始知道Java博大精深.. 阅读全文
posted @ 2013-08-09 23:53 狂师 阅读(306) 评论(0) 推荐(0) 编辑
摘要: 这个要看码流设置到多大 一眼都是2M左右 也就是2048 的码流 算法就是 码流2048 X 一小时3600秒 =7372800 个字节 除以8(一KB等于8个字节) 等于921600KB 转换成M 就是除以1024 等于 900M 压缩和传输途中有一些损失是在所难免 所以一小时也就800多M130W的分辨率理论上应该是1280X960,但是市场上很多厂家把720P说成是130W的,其实只有1280X720。130W的在码流2M的情况下,每路每小时大概在1G左右。模拟摄像机的话,如果是CIF(352×288)格式的话,建议用码流512K... 阅读全文
posted @ 2013-08-08 15:48 狂师 阅读(626) 评论(0) 推荐(0) 编辑
摘要: 修改桌面的快捷键为选中就行了:Flags: checkablealone;在[Tasks]下面修改代码如下:Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: checkablealone;我的就是后面多了一个:WindowS版本的字段:OnlyBelowVersion: 0,6.1删除后就可以了,eg :[Tasks];Name: "desktopicon&q 阅读全文
posted @ 2013-08-08 14:09 狂师 阅读(1124) 评论(0) 推荐(0) 编辑
摘要: SetWindowPos(NULL,0,0,200,300,SWP_NOMOVE); 表示不考虑(0,0),仅仅将大小改为200x300,位置不变 SetWindowPos(NULL,0,0,200,300,SWP_NOMOVE); 表示不考虑200X300,只是把位置挪到(0,0).大小不变 如果想同时改变,最后可用SWP_NOZORDER等 参数中还有SWP_SHOWWINDOW 显示窗口 对应的SWP_HIDEWINDOW 阅读全文
posted @ 2013-08-08 11:53 狂师 阅读(1115) 评论(0) 推荐(0) 编辑
摘要: 关于三个SDK函数:WinExec,ShellExecute,CreateProcess的其他注意事项:【1】定义头文件必须定义以下两个头文件:#include//可替换为windows.h#include如果定义了头文件#include的话就不必定义#include了。【2】定义路径C++中所表示的路径要用"\\"而不是平常所用的"\",所以以上三个函数表示路径都为:disk:\\Directory\\...\\FilenameWinExec("D:\\ProgramFiles\\Test\\Test.exe",SW_SHOWMAX 阅读全文
posted @ 2013-08-07 20:55 狂师 阅读(923) 评论(0) 推荐(0) 编辑
摘要: 一、三个SDK函数:WinExec,ShellExecute ,CreateProcess可以实现调用其他程序的要求,其中以WinExec最为简单,ShellExecute比WinExec灵活一些,CreateProcess最为复杂。WinExec 两个参数,前一个指定路径,后一个指定显示方式。ShellExecute 可以指定工作目录,并且还可以寻找文件的关联直接打开不用加载与文件关联的应用程序,ShellExecute还可以打开网页,启动相应的邮件关联发送邮件等等。CreateProcess 一共有十个参数,不过大部分都可以用NULL代替,它可以指定进程的安全属性,继承信息,类的优先级等等 阅读全文
posted @ 2013-08-07 20:51 狂师 阅读(1969) 评论(0) 推荐(0) 编辑
摘要: 让远程桌面支持多用户Windows XP不支持多个用户同时登录远程桌面,当其他用户远程登录Windows XP时,主机上当前已登录的用户即会自动退出。不过在Windows XP SP2中提供了允许连接会话并发功能,可通过远程桌面进行多用户的同时登录,但其在默认状态下关闭了该项特性,需要通过修改注册表开启该功能。 打开注册表编辑器,依次展开“HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\Licensing Core”分支,转到右侧窗口,在其中新建一个类型为DWORD的子键,将该键命名为“EnableCo.. 阅读全文
posted @ 2013-08-01 21:06 狂师 阅读(349) 评论(0) 推荐(0) 编辑
摘要: 如何通过子网掩码划分网段资料一:一、缺省A、B、C类地址,子网掩码; 二、子网掩码的作用: code: IP地址192.20.15.511000000000101000000111100000101 子网掩码255.255.0.011111111111111110000000000000000 网络ID192.20.0.011000000000101000000000000000000 主机ID0.0.15.500000000000000000000111100000101 计算该子网中的主机数:2^n-2=2^16-2=65534 其中:n为主机ID占用的位数2:192.20.0.0(表示本 阅读全文
posted @ 2013-07-29 18:44 狂师 阅读(2105) 评论(0) 推荐(0) 编辑
摘要: linux下如何修改iptables开启80端口最近在做本地服务器的环境,发现网站localhost能正常访问,用ip访问就访问不了,经常使用CentOS的朋友,可能会遇到和我一样的问题。开启了防火墙导致80端口无法访问,刚开始学习centos的朋友可以参考下。 www.2cto.com 经常使用CentOS的朋友,可能会遇到和我一样的问题。最近在Linux CentOS防火墙下安装配置 ORACLE 数据库的时候,总显示因为网络端口而导致的EM安装失败,遂打算先关闭一下CentOS防火墙。偶然看到CentOS防火墙的配置操作说明,感觉不错。执行”setup”命令启动文字模式配置实用程序,在” 阅读全文
posted @ 2013-07-28 22:58 狂师 阅读(615) 评论(0) 推荐(0) 编辑
摘要: 在此分享,同时欢迎大家补充。http://groups.yahoo.com/group/LoadRunner性能测试工具LoadRunner的一个论坛http://www.asq.org/是世界上最大的一个质量团体组织之一,有着比较丰富的论文资源,不过是收费的http://www.automated-testing.com/一个自动化软件测试和自然语言处理研究页面,属于个人网页,上面有些资源可供下载http://www.betasoft.com/包含一些流行测试工具的介绍、下载和讨论,还提供测试方面的资料http://www.cc.gatech.edu/aristotle/Aristole研究 阅读全文
posted @ 2013-07-28 21:29 狂师 阅读(681) 评论(0) 推荐(0) 编辑
摘要: 一。 通用命令:1. date :print or set the system date and time2. stty -a: 可以查看或者打印控制字符(Ctrl-C, Ctrl-D, Ctrl-Z等)3. passwd: print or set the system date and time (用passwd -h查看)4. logout, login: 登录shell的登录和注销命令5. pwd: print or set the system date and time6. more, less, head tail: 显示或部分显示文件内容.7. lp/lpstat/cance 阅读全文
posted @ 2013-07-28 21:26 狂师 阅读(382) 评论(0) 推荐(0) 编辑
摘要: 在 Linux 系统中安装Load Generator ,并在windows 调用由于公司需要测试系统的最大用户承受能力,所以需要学习使用loadrunner。在安装的时候碰到了不少问题,所以写下此文章总结遇到的问题以及解决方案,希望能帮到大家。也希望大家转载注明出处。Winsows 的Loadrunner 安装就不多讲了,这个太容易了。以下是Linux 中安装 Load Generator 说明:Linux 系统版本:CentOS5.4Load Generator 版本 :Load Generator 11安装步骤如下:1. 到HP官网下载Load Generator 安装文件Softwar 阅读全文
posted @ 2013-07-28 18:21 狂师 阅读(896) 评论(0) 推荐(0) 编辑
摘要: 我将bug依据复现的难易程度分为:必现的bug,比较容易复现的bug,很难复现的bug。对于必现的bug,我通常淡定地称为其不是bug,因为,通过不断地复现,不断地调试,这些bug通常都能被解决,被解决了,还是bug么?对于比较容易复现的bug,所谓比较容易复现,就是通过不太复杂操作,尝试几次、十几次,现象就可出现的bug,因为复现操作变得复杂,所以,为了每次复现能够获得更多的信息,尽量多地增加调试信息,以期望问题复现后,极大地缩小问题原因的范围。毕竟复现问题是一件颇为繁琐、枯燥的事情。对于很难复现的bug,所谓很难复现,就是尝试了各种复现方法,复现了几十次,甚至上百次都无法复现的bug。首先 阅读全文
posted @ 2013-07-28 11:19 狂师 阅读(576) 评论(0) 推荐(0) 编辑