鹿我所录的博客

记录我在学习C#中的点点滴滴,记录下以备后来人借鉴。

 

2015年10月26日

VC++ 如何使窗体最大化或是最小化

摘要: 最大化最小的使得的函数是ShowWindow函数 ShowWindow(SW_SHOWMINIMIZED);//最小化 ShowWindow(SW_SHOWMAXIMIZED);//最大化 ShowWindow(SW_RESTORE);//还原 ------- PostMessage(hwnd,WM... 阅读全文

posted @ 2015-10-26 14:20 鹿我所录 阅读(7076) 评论(0) 推荐(0) 编辑

VC++ 两种动态调整控件位置的方法(CButton设置为Radio形式会出现错误)

摘要: 1 ((CButton*)GetDlgItem(IDC_CHECK1))->MoveWindow(182, cy - 232, 30, 20); 2 ((CButton*)GetDlgItem(IDC_CHECK2))->MoveWindow(182, cy - 2... 阅读全文

posted @ 2015-10-26 14:06 鹿我所录 阅读(1218) 评论(0) 推荐(0) 编辑

2015年10月24日

VC++ 在两个程序中 传递字符串等常量值的方法:使用了 WM_COPYDATA 消息的

摘要: 消息作用: 在进程间共享数据(内部通过创建内存映射文件) 消息介绍:需要用到的数据结构/类型:typedef struct tagCOPYDATASTRUCT { ULONG_PTR dwData; DWORD cbData; PVOID lpData;} COPYDATASTRUCT, *PCOPYDATASTRUCT; 结构体参数说明: dwData(ULON... 阅读全文

posted @ 2015-10-24 21:17 鹿我所录 阅读(849) 评论(0) 推荐(0) 编辑

VC++ 控制外部程序,向外部程序发送一个消息的方法

摘要: 这里需要考虑两部分的内容: 发送端: 查找对应的窗体,找到CWnd的值 向窗体发送消息 举例: CWnd* wnd = FindWindow(NULL, _T("选择题做题过程中")); if (wnd == NULL) { AfxMessageBox(_T("找不到程序!")); } else { ::SendMessage... 阅读全文

posted @ 2015-10-24 20:05 鹿我所录 阅读(1004) 评论(0) 推荐(0) 编辑

VC++ 在控件上写字时 字体的设置技巧

摘要: //人物照片下方的文字 CFont* nFont = &afxGlobalData.fontRegular; CFont* oFont = pDc->SelectObject(nFont); CString str; str.Format(_T("姓名: %s "), m_S... 阅读全文

posted @ 2015-10-24 19:17 鹿我所录 阅读(742) 评论(0) 推荐(0) 编辑

VC++ 将资源位图画到窗口上去的方法

摘要: 第一种方法最简单:直接看代码 CImage img; img.LoadFromResource(AfxGetInstanceHandle(), IDB_BITMAP1); img.Draw(*pDc, 0,0); 在这段代码中:使用了 LoadFromResource 函数来加载位图. 也可使用 img.Load(_T("res\\1.bmp")); 这个办法可以加载来自文... 阅读全文

posted @ 2015-10-24 12:54 鹿我所录 阅读(675) 评论(0) 推荐(0) 编辑

VC++ WINDOWS自定义消息范围

摘要: WINDOWS自定义消息WM_USER和WM_APP WM_USER常量是Windows帮助应用程序定义私有窗口类里的私有消息,通常使用WM_USER+一个整数值,但总值不能超过0x7FFF(十进制:32767)。 #define WM_USER 0x0400 -->1024 WM_APP常量是Windows帮助应用程序定义私有消息,通常使用WM_... 阅读全文

posted @ 2015-10-24 09:46 鹿我所录 阅读(503) 评论(0) 推荐(0) 编辑

2015年10月23日

VC++ 动态生成 成组的 RadioButton 按钮组

摘要: 先说一下 静态创建的方法: 单选按钮也属于CButton类,但由于单选按钮总是成组使用的,所以它在制作和使用上与普通按钮有一定区别。假设有三个单选按钮组成一组,初始时,第一个单选按钮处于选中状态。我们先来看静态制作方法:在对话框中放置三个单选按钮,设置属性如下:Radio1属性:Visible、Group、Tab stop、AutoRadio2属性:Visible、Tab stop、AutoRad... 阅读全文

posted @ 2015-10-23 16:22 鹿我所录 阅读(2742) 评论(0) 推荐(0) 编辑

VC++ CButton::SetCheck 的使用方法

摘要: CButton::SetCheck void SetCheck(int nCheck); 参数 nCheck 指定检查状态。 此参数可以是下列值之一: 值 含义 BST_UNCHECKED 将按钮状态为未选中状态。 BST_CHECKED ... 阅读全文

posted @ 2015-10-23 16:09 鹿我所录 阅读(8898) 评论(0) 推荐(0) 编辑

2015年10月5日

VC++ 中简单操作MP3音乐的方法,小结

摘要: #include #include #include #include #include #pragma comment(lib,"winmm.lib") void main() { char str[128]={0}; int i = 0; char buf[128]={0}; MCI_OPEN_PARMS mciOpen; MCIERROR mciError; mciO... 阅读全文

posted @ 2015-10-05 09:28 鹿我所录 阅读(1639) 评论(1) 推荐(0) 编辑

2015年10月1日

MFC中控制COMBOBOX控件的下拉框高度

摘要: 这是使用Visual Stiduo的小技巧哦。今天上网找来的。在界面设计面板上,点击ComboBox的下拉箭头,会另外出现一个虚边框。可以调整其大小。这个就是实现运行的时候下拉边框的默认值啦。 阅读全文

posted @ 2015-10-01 17:13 鹿我所录 阅读(1470) 评论(0) 推荐(0) 编辑

C++基于TCP和UDP的socket通信

摘要: 以下是关于socket编程的一个非常经典的例子: 服务端: #include #include //windows socket的头文件 #pragma comment( lib, "ws2_32.lib" )// 链接Winsock2.h的静态库文件 void main() { //初始化winsocket WORD wVersionRequested; WSAD... 阅读全文

posted @ 2015-10-01 16:24 鹿我所录 阅读(2657) 评论(0) 推荐(1) 编辑

2015年9月30日

VC MFC在CMFCToolBar工具栏中加入组合框

摘要: 如何在CMFCToolBar工具栏中加入组合框等控件,且先看在线MSDN上怎么说的: 要增加一个组合框,需要完成以下步骤: 1.在工具栏资源中,增加一个对应ID资源号的按钮. 2.在主框架(mainframe.h)文件中,添加一个 CMFCToolBarComboBoxButton 类的变量 : CMFCToolBarComboBoxButton* m_ComboButton; 3.添加... 阅读全文

posted @ 2015-09-30 16:15 鹿我所录 阅读(3200) 评论(0) 推荐(0) 编辑

2015年9月10日

C++ 一个程序获取另一个程序Edit控件的内容

摘要: //一个程序获取另一个程序Edit控件的内容 //根据指定程序的标题名获取改程序窗口的句柄 HWND hWnd=::FindWindow(NULL,"zhang001"); if(hWnd) { MessageBox("get windows"); //根据窗口句柄获取EDIT控件的ID,但是这个I... 阅读全文

posted @ 2015-09-10 01:01 鹿我所录 阅读(12333) 评论(0) 推荐(0) 编辑

C++/MFC如何启动另一个应用程序并获取其进程 ID

摘要: ShellExecute(hWnd: HWND; {指定父窗口句柄}Operation: PChar; {指定动作, 譬如: open、runas、print、edit、explore、find[2] }FileName: PChar; {指定要打开的文件或程序}Parameters: PChar;... 阅读全文

posted @ 2015-09-10 00:33 鹿我所录 阅读(10238) 评论(0) 推荐(0) 编辑

2015年9月5日

VC++ 结束线程 AfxBeginThread AfxEndThread

摘要: 如果你的线程是从CWinThread继承出来的,结束自己就用AfxEndThread,如果是外部调用的话,可以用PostThreadMessage(m_nThreadID, WM_QUIT,0,0);给这个线程发送消息,线程就会结束的,其中的m_nThreadID是线程ID。线程的ID可以这样得到p... 阅读全文

posted @ 2015-09-05 19:47 鹿我所录 阅读(1883) 评论(0) 推荐(0) 编辑

C++ #include .h extern 的相关关系及说明

摘要: 函数和变量都有声明和定义两个写法。声明的目的是告诉别的代码这个变量的名称,而定义比声明多了一个功能,除了告知名称以外,还会为这个变量分配内存。对于函数来说,加不加extern都没有关系,因为有函数体一定是定义,加extern也会被忽略,而没有函数体的就是声明, int add(int a, int b); 等价于 extern int add(int a, int b); 如果是变量的... 阅读全文

posted @ 2015-09-05 09:23 鹿我所录 阅读(327) 评论(0) 推荐(0) 编辑

2015年8月31日

VC++ list函数详解

摘要: 在使用之前,需要完成两件事:(1) #include (2) using namespace std;声名变量: list intlist;一、构造、析构函数、= 运算符1、功能:声明list容器。4种方式list first; // empty list of intslist second (4... 阅读全文

posted @ 2015-08-31 14:22 鹿我所录 阅读(1891) 评论(0) 推荐(0) 编辑

VC++ 限制窗口的大小范围的方法

摘要: 响应WM_GETMAXMININFO 的消息 处理之 void CMainFrame::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI) { // TODO: Add your message handler code here and/or call default lpMMI->ptMinTrackSize.x = 100 ; lpMMI... 阅读全文

posted @ 2015-08-31 00:05 鹿我所录 阅读(725) 评论(0) 推荐(0) 编辑

2015年8月30日

VC++ CTreeCtrl 使用NM_CLICK和TVN_SELCHANGED

摘要: //这是当CTREECTRL控件点击时NM_CLICK的处理函数void CDriverSelCtrl::OnNMClick(NMHDR *pNMHDR, LRESULT *pResult){ CPoint curPoint; UINT nFlags; HTREEITEM hIte... 阅读全文

posted @ 2015-08-30 21:53 鹿我所录 阅读(3719) 评论(0) 推荐(0) 编辑

Vc++ 控件用法总结之List Control

摘要: 1.新建对话框MFC,在对话框上放一个ListCtrl ID:IDC_PATH View:Report 2.为ListCtrl添加变量 右击->添加变量m_wndPath 3.找到OnInitDialog()函数添加如下代码: // TODO: 在此添加额外的初始化代码 m_wndPath.DeleteAllItems();//清空 m_wndPath.InsertColumn(0,_T(... 阅读全文

posted @ 2015-08-30 05:46 鹿我所录 阅读(8045) 评论(0) 推荐(0) 编辑

2015年8月27日

VC++ 将IP字符串转为 DWORD值

摘要: CString strIP="192.168.1.184"; DWORD dwAddress= ntohl( inet_addr(strIP)); m_IPAddr.SetAddress(dwAddress);//--------------------------------------- DWORD dwMainServerIP; m_MainServerIPCtrl.G... 阅读全文

posted @ 2015-08-27 09:54 鹿我所录 阅读(968) 评论(0) 推荐(0) 编辑

2015年8月26日

C语言提供了几个标准库函数 itoa() atoi()

摘要: C语言提供了几个标准库函数C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串。以下是用itoa()函数将整数转换为字符串的一个例子:# include # include void main (void){int num = 100;char str[25];it... 阅读全文

posted @ 2015-08-26 17:36 鹿我所录 阅读(2069) 评论(0) 推荐(0) 编辑

2015年8月22日

C语言 malloc calloc realloc alloc 在分配内存时的 区别

摘要: malloc : 向堆申请分配内存,不初始化 calloc : 向堆申请分配内存,初始化为0 realloc: 向堆申请分配内存,可调整大小 alloc : 向栈申请内存,不需手动释放 阅读全文

posted @ 2015-08-22 10:53 鹿我所录 阅读(450) 评论(0) 推荐(0) 编辑

2015年8月21日

C语言 malloc、calloc、realloc的区别

摘要: 三个函数的申明分别是: void* malloc(unsigned size); void* realloc(void* ptr, unsigned newsize); void* calloc(size_t numElements, size_t sizeOfElement); 都在stdlib.h函数库内,它们的返回值都是请求系统分配的... 阅读全文

posted @ 2015-08-21 10:20 鹿我所录 阅读(734) 评论(0) 推荐(0) 编辑

2015年8月19日

VC++ MFC中如何将应用程序的配置信息保存到注册表中(二)

摘要: 在上一篇中介绍了几个写入注册表数据和读取注册表数据的接口,并介绍了使用方法。 这一片教你如何使得你的应用程序在下次打开时保持上一次关闭前的状态。 在上一篇添加的代码的基础上,要添加WM_CLOSE消息的响应函数,因为我们只有在窗口关闭前要保存窗口的位置信息,所以保存窗口位置到注册表的代码要写在这个消息处理函数。 代码如下: void CTestClassDlg::OnClose() { ... 阅读全文

posted @ 2015-08-19 16:51 鹿我所录 阅读(871) 评论(0) 推荐(0) 编辑

VC++ MFC中如何将应用程序的配置信息保存到注册表中(一)

摘要: 注册表(Registry,繁体中文版Windows称之为登录档)是Microsoft Windows中的一个重要的数据库,用于存储系统和应用程序的设置信息。比如我们打开一个记事本,调整其窗口大小,使用完毕后关闭记事本,下次打开时大小和上次关闭前的大小和在屏幕上的位置是相同。这些位置和大小信息就是在记事本关闭时保存到注册表中,下次打开时我们从注册表中取出这些数据,并按照这些数据显示记事本程序的大... 阅读全文

posted @ 2015-08-19 16:28 鹿我所录 阅读(3002) 评论(0) 推荐(0) 编辑

2015年8月15日

VC++模态对话框和非模态对话框

摘要: MFC中有两种类型的对话框:模态对话框和非模态对话框。 模态对话框是指当其显示时,程序会暂停执行,直到关闭这个模态对话框后,才能继续执行程序中其他任务。非模态对话框是指当其显示时,允许转而执行程序中其他任务,而不用关闭这个对话框。 模态对话框的创建:创建模态对话框需要调用CDialog类的成员函数:DoModal,该函数的功能是创建并显示一个模态对话框,其返回值将作为CDialog类的... 阅读全文

posted @ 2015-08-15 10:12 鹿我所录 阅读(9112) 评论(0) 推荐(0) 编辑

VC++ MFC子对话框建立与关闭

摘要: 主窗体 void CMoshiwindowDlg::OnButton1() { // TODO: Add your control notification handler code here CDialogproty dlg; dlg.DoModal(); m_text.SetWindowText(dlg.text); } 子窗体: 1.头文件声明变量 2.... 阅读全文

posted @ 2015-08-15 08:25 鹿我所录 阅读(15363) 评论(0) 推荐(0) 编辑

2015年8月14日

VC++ AfxBeginThread 与 CreateThread 的区别

摘要: 简言之:AfxBeginThread是MFC的全局函数,是对CreateThread的封装。 CreateThread是Win32 API函数,前者最终要调到后者。具体说来,CreateThread这个 函数是windows提供给用户的 API函数,是SDK的标准形式,在使用的过程中要考虑到进程的同步与互斥的关系,进程间的同步互斥等一系列会导致操作系统死锁的因素,用起来比较繁琐一些,初学的人... 阅读全文

posted @ 2015-08-14 22:46 鹿我所录 阅读(1463) 评论(0) 推荐(0) 编辑

VC++ 用setsockopt()来控制recv()与send()的超时

摘要: 在send(),recv()过程中有时由于网络状况等原因,收发不能预期进行,而设置收发超时控制: 以下是来自于网上一篇文章中的摘录,它是这样写的: int nNetTimeout=1000;//1秒, //设置发送超时 setsockopt(socket,SOL_SOCKET,SO_SNDTIMEO,(char *)&nNetTimeout,sizeof(int)); //设置接收超时 setso... 阅读全文

posted @ 2015-08-14 15:42 鹿我所录 阅读(1887) 评论(0) 推荐(0) 编辑

VC++ 动态创建单个工具条,并加载外部的位图(bmp)文件为工具栏图像

摘要: 步骤: 1, 在框架类CMainFrame头文件里,增加图像变量和工具条变量。 CMFCToolBarImages m_UserImages; CMFCToolBar m_wndToolBar; 2,在OnCreate函数里动态创建和加载工具条 // 创建工具条 if (!m_wndToolBar .CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISI... 阅读全文

posted @ 2015-08-14 10:41 鹿我所录 阅读(1751) 评论(0) 推荐(0) 编辑

VC++ 浅谈VS2010中CMFCToolBar的用法

摘要: 本文将给大家介绍Visual Studio 2010中CMFCToolBar的用法,CMFCToolBar可以让用户自定义工具栏图标,使用静态成员函数SetUserImages()将一个CMFCToolBarImages对象设置进去,由所有CMFCToolBar对象共享。AD: 自从VS2008中增... 阅读全文

posted @ 2015-08-14 10:30 鹿我所录 阅读(5356) 评论(0) 推荐(0) 编辑

2015年8月13日

VC++ 关于 ON_UPDATE_COMMAND_UI 相关的作用.

摘要: ON_COMMAND_RANGE(ID_SORTING_GROUPBYTYPE, ID_SORTING_SORTBYACCESS, OnSort) ON_UPDATE_COMMAND_UI_RANGE(ID_SORTING_GROUPBYTYPE, ID_SORTING_SORTBYACCESS, OnUpdateSort) 在上面的代码中,其中第一个 ON_COMMAND_RANGE 的作用,是... 阅读全文

posted @ 2015-08-13 07:42 鹿我所录 阅读(2603) 评论(0) 推荐(1) 编辑

2015年8月10日

VC++ 如何在显示对话框的时候,指定焦点控件!

摘要: 很简单:在你的CAddDlg类的OnInitDialog函数中加上你上面的代码GetDlgItem(IDC_EDIT1)->SetFocus();最后记得return FALSE;其实,不知道返回FALSE是啥意思!查了说明:ReturnValue Specifieswhethertheapplic... 阅读全文

posted @ 2015-08-10 17:38 鹿我所录 阅读(3386) 评论(0) 推荐(0) 编辑

2015年8月7日

VC++ 标准C++中的string类的用法总结

摘要: 相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用。但是如果离开了MFC框架,还有没有这样使用起来非常方便的类呢?答案是肯定的。也许有人会说,即使不用MFC框架,也可以想办法使用MFC中的API,具体的操作方法在本文最后给... 阅读全文

posted @ 2015-08-07 00:42 鹿我所录 阅读(3073) 评论(0) 推荐(0) 编辑

2015年8月6日

TinyXML:一个优秀的C++ XML解析器

摘要: //-----------------------------------------------------------------------------------------------------------------------------------------------将 我的网... 阅读全文

posted @ 2015-08-06 18:13 鹿我所录 阅读(623) 评论(0) 推荐(1) 编辑

2015年8月5日

VC++绘图时,利用双缓冲解决屏幕闪烁 转载

摘要: 最近做中国象棋,绘制界面时遇到些问题,绘图过程中屏幕闪烁,估计都会想到利用双缓冲来解决问题,但查了下网上双缓冲的资料,发现基本是MFC的,转化为VC++后,大概代码如下:void DrawBmp(HDC hDC, HBITMAP hBitmap){ HDC hdcMEM; //用于缓冲作图的... 阅读全文

posted @ 2015-08-05 15:30 鹿我所录 阅读(1270) 评论(0) 推荐(0) 编辑

VC++双缓冲保持背景不擦除之实现

摘要: 几天前,我终于克服了C++窗体重绘时的闪烁问题,用到的技巧就是双缓冲。但是怎样保持住已经绘制的图形呢?也就是仿照Windows自带的画图程序一般,动态的做出一条直线。最容易想到的方法是在MouseMove过程中,不断擦除上次所画的线,然后再画出新的直线,只须增件变量保存开始的点和上次的点即可。这样做... 阅读全文

posted @ 2015-08-05 15:19 鹿我所录 阅读(2576) 评论(0) 推荐(0) 编辑

VC++中操作XML(MFC、SDK)转

摘要: [转]VC++中操作XML(MFC、SDK) XML在Win32程序方面应该没有在Web方面应用得多,很多Win32程序也只是用XML来存存配置信息而已,而且没有足够的好处的话还不如用ini。VC++里操作XML有两个库可以用:MSXML和XmlLite。MSXML又细分了两种接口:DOM和SAX2。XP没自带有XmlLite,只自带有2.x、3.x版的MSXML,不支持SAX2(需要MSXML ... 阅读全文

posted @ 2015-08-05 06:08 鹿我所录 阅读(534) 评论(0) 推荐(0) 编辑

导航