
C++
文章平均质量分 73
pinggle
好好工作,好好生活
展开
-
win32 设置列表框风格
ListView_SetExtendedListViewStyle(hwnd[DT_CTL_LIST_VIEW],LVS_EX_FULLROWSELECT/*设置整行选择风格*/|LVS_EX_CHECKBOXES/*设置CheckBox样式*/);//设置列表框风格原创 2014-07-01 18:35:09 · 1950 阅读 · 0 评论 -
系统区域为非中文(比如英文)的情况下,执行MultiByteToWideChar失败
主要是WideCharToMultiByte的第一个参数codepage造成的,如前面所使用的CP_ACP所表达的意思是使用系统字符集转换,但是由于此时的系统字符集为英文,在这个codepage中并没有中文,所以转换出错. 1.在正常的中文系统下执行MultiByteToWideChar很正常,其中,第一个参数为:CP_ACPchar* unicodeTOansi(const wcha原创 2013-01-12 17:18:49 · 2778 阅读 · 0 评论 -
【VC皮肤】AppFace的使用
英文官网: http://www.appface.com/eng/download-skins.htm中文官网: http://www.appface.com/chs/download.htmAppFace 软件皮肤界面开发包英文名称是 AppFace UI Development Kits,简称 AUDK ,它提供了一种将美术设计和编程完全分开的软件界面美化的解决方案。它的核原创 2013-01-24 12:18:08 · 3408 阅读 · 2 评论 -
【VC皮肤】SkinMagic的使用
使用了SkinMagic2.01设置软件界面的一个单文档程序,就三步:首先拷贝SkinMagicLib.h、SkinMagic.Lib、SkinMagic.dll和皮肤文件*.smf到工程文件夹下;第二步,添加代码在APP文件的InitInstance()中添加代码: VERIFY( 1 == InitSkinMagicLib( AfxGetInstanceHandle()原创 2013-01-24 10:30:35 · 2347 阅读 · 0 评论 -
【VC皮肤】破解版skin++皮肤库使用
skin++可以使VC++等工具写的软件的界面很漂亮,但是试用版在运行时会跳出注册框,正式版又需要花钱,下面的这种方法将会使注册窗口不再跳出来。 1、将skin++(破解后的)的三个文件SkinPPWTL.h、SkinPPWTL.lib、SkinPPWTL.dll连同你需要用的皮肤文件一同拷贝到你的工程目录下。 2、在工程的stdafx.h文件引入SkinPPWTL.h头文件,转载 2013-01-24 09:03:16 · 6973 阅读 · 1 评论 -
【VC皮肤】skin++皮肤库使用
skin++可以使VC++等工具写的软件的界面很漂亮,但是试用版在运行时会跳出注册框,正式版又需要花钱,下面的这种方法将会使注册窗口不再跳出来。 1、将skin++(破解后的)的三个文件SkinPPWTL.h、SkinPPWTL.lib、SkinPPWTL.dll连同你需要用的皮肤文件一同拷贝到你的工程目录下。 2、在工程的stdafx.h文件引入SkinPPWTL.h头文件,转载 2013-01-24 10:03:54 · 4468 阅读 · 0 评论 -
【VC皮肤】SkinSharp 1.0.6.6的使用
SkinSharp又称Skin#,是Windows环境下一款强大的换肤组件。SkinSharp作为换肤控件,只需要在您的程序中添加一行代码,就能让您的界面焕然一新,并拥有多种主题风格和色调的动态切换功能以及Vista透明边框特效。网站地址:http://www.skinsharp.com/官方下载:http://www.skinsharp.com/htdocs/tar/Sk转载 2013-01-24 10:14:14 · 1386 阅读 · 0 评论 -
在VC下执行DOS命令
/* ================================================================================================ 方法一: system("md c://12"); 1) 调用命令时会出现一个dos 窗口一闪而过,影响视觉效果。 2)无法将命令的执行结果反馈给用户。*/ system("转载 2013-01-09 12:16:31 · 14837 阅读 · 2 评论 -
【错误记录】二维数组初始化,以二级指针传递函数参数
直接上代码, 在开始的时候,我的代码如下:typedef unsigned char u8;void init_func(){ u8 pTempStringParamArray[2][4]={0}; sprintf(pTempStringParamArray[0],"5"); sprintf(pTempStringParamArray[1],"115"); u原创 2012-11-16 11:23:34 · 1708 阅读 · 1 评论 -
VC 给列表框添加【右键按键菜单】功能
1.在项目资源文件中加入一个新的Menu资源,作为右键点击弹出的菜单。 并在Menu上面填上相应的响应的子菜单。如图: 填好相应的ID值:Caption -> IDMenu -> IDR_MENU_BATCH_RCLICKEdit Song -> ID_BATCH_MENU_EDIT_SONGDelete So原创 2013-01-08 15:00:35 · 5530 阅读 · 0 评论 -
【VC控件】动态修改控件和弹出菜单上的文字内容及大小
思路: 根据各国语言的不同,构建不同语言包的DLL。::MessageBoxW(NULL,cla_kodlogic->GetMsgString(1712),cla_kodlogic->GetMsgString(1716),MB_OK);上面的1712和1716分别为DLL中字符串对应的索引。1. 动态修改窗体的Caption:1.AfxGetMainWnd()->SetWi原创 2013-01-23 17:29:15 · 4290 阅读 · 0 评论 -
【VC报错】LeaveCriticalSection中断异常
这两天,接手别人的一个VC程序,要求在中文,英文,繁体系统下都能正常运行,并且在不同系统下显示不同的语言。最近就遇到一个很棘手的问题,和之前在英文系统下的差不多,只是这次更离谱,上次是英文系统下的默认编码导致取中文首拼错误;现在是在繁体系统下,开启工具就会中断异常,报堆栈不平衡,DLL所致。经多次跟踪,找到时 LeaveCriticalSection 函数这里,跳出的异常中断。原创 2013-01-22 14:59:42 · 3894 阅读 · 0 评论 -
【远控编写01】客户端界面的设计和编写--对话框,列表控件的伸缩
1.新建一个MFC工程,工程属性配置如下: 2.添加最大化窗口和最小化窗口的属性.3.更改对话框到合适的大小.4.添加服务端连接后显示的列表控件IDC_ONLINE,日志列表控件IDC_MESSAGE.5.演示伸缩窗口,最大化时列表不能伸缩6.添加列表控件变量m_CList_Online,m_CList_Message7.响应对话框改变大小的消息WM_SIZE就是原创 2013-02-12 22:17:47 · 2020 阅读 · 0 评论 -
time_t转换格式化时间
#include #include int main (){ static char str_time[100]; struct tm *local_time = NULL; time_t utc_time; utc_time = time (NULL); local_time = localtime(&utc_t原创 2014-06-30 13:59:51 · 10247 阅读 · 0 评论 -
CFileDialog弹出文件选择对话框
// 选择游戏路径void CAskTao_WGDlg::OnBnClickedBtnSelectGamepath(){ CFileDialog GamePath(TRUE,NULL,NULL,0,L"*.exe|*.exe|"); GamePath.DoModal(); cs_gamepath = GamePath.GetPathName(); cs_gamepath = cs_ga原创 2014-04-15 12:13:37 · 1314 阅读 · 0 评论 -
【VC串口】VC串口通信的3种常见方法
本文介绍了在Windows平台下串行通信的实现机制,讨论了根据不同的条件用Visual C++ 设计串行通信程序的三种方法,并结合实际,实现对温度数据的接收监控。在实验室和工业应用中,串口是常用的计算机与外部串行设备之间的数据传输通道,由于串行通信方便易行,所以应用广泛。依据不同的条件实现对串口的灵活编程控制是我们所需要的。在光学镜片镀膜工艺中,用单片机进行多路温度数据采集控制,采集结果以转载 2013-04-12 16:12:25 · 13087 阅读 · 0 评论 -
【远控编写09】客户端界面的设计和编写--为对话框添加入工具条
一.基础知识:1.工具条类: CToolBar.(在MSDN中查看其成员Member)①CToolBar::CreateExCall this function to create a Windows toolbar (a child window) and associate it with the CToolBar object.virtual BOOL CreateEx(原创 2013-02-13 16:58:05 · 2892 阅读 · 1 评论 -
【远控编写02】客户端界面的设计和编写--加入列表的列名称
1.上一节我们为列表控件添加变量,我们来查看变量的成员: CListCtrl 类 查看MSDN 找到int InsertColumn( int nCol, //列的顺序 LPCTSTR原创 2013-02-12 22:42:59 · 1475 阅读 · 0 评论 -
【远控编写08】客户端界面的设计和编写--为对话框添加状态栏并在态栏上显示文字
一.基础知识:1.状态条类: CStatusBar.(在MSDN中查看其成员Member)2.在状态条中加入对应字符串ID:BOOL SetIndicators( const UINT* lpIDArray, //字符串ID int nIDCount //个数 );3.设置状态条的显示状态:void SetPaneIn原创 2013-02-13 13:13:15 · 2076 阅读 · 0 评论 -
【远控编写07】客户端界面的设计和编写--为对话框添加菜单栏并添加事件响应
一.基础知识:1.载入菜单 :HMENU LoadMenu( HINSTANCE hInstance, //资源所在文件模块的句柄标识 LPCTSTR lpMenuName //资源ID );2.为窗口设置菜单:BOOL SetMenu( HWND hWnd, //要设置菜单的窗口句柄原创 2013-02-13 11:56:40 · 1973 阅读 · 0 评论 -
【远控编写06】客户端界面的设计和编写--添加菜单消息响应,从列表中删除条目
一.基础知识:1.删除列表控件中的某一行:BOOL DeleteItem( int nItem //列表的索引 从0开始 );2.获得当前列表控件焦点的索引:int GetSelectionMark( ); //得到用户选中的条目索引3.获得列表控件某行某列的内容:CString GetItemText( int nI原创 2013-02-13 01:38:34 · 1511 阅读 · 0 评论 -
【远控编写05】客户端界面的设计和编写--列表中显示弹出菜单
1.添加菜单资源: 2.添加我们的代码 a.添加右键列表的响应函数(NM_RCLICK) b.添加代码void CPCRemoteDlg::OnNMRClickOnline(NMHDR *pNMHDR, LRESULT *pResult){ LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast原创 2013-02-13 00:24:04 · 1635 阅读 · 0 评论 -
【远控编写04】客户端界面的设计和编写--列表中添加条目
1.CListCtrl InsertItem 插入条目 查看MSDN int InsertItem( int nItem, //插入哪一行 LPCTSTR lpszItem //该行0列显示的字符原创 2013-02-12 23:19:24 · 1819 阅读 · 0 评论 -
【远控编写03】客户端界面的设计和编写--列表的列宽度支持伸缩
1.1.CListCtrl SetColumnWidth 查看MSDN BOOL SetColumnWidth( int nCol, //列索引 int cx //列宽度原创 2013-02-12 23:04:08 · 1345 阅读 · 0 评论 -
utf8与unicode转换
1. 不用VC库函数转换:class CStrConvertor { public: static int Unicode2Utf8(LPSTR cBuf, int& iCBuf,LPCWSTR uBuf, int iUBuf); static int Utf82Unicode(LPWS转载 2012-12-22 15:25:28 · 1028 阅读 · 0 评论 -
C++中的Peek函数在C语言中实现
我朋友总是跟我说,C++是C的阉割版,我不反对,也不赞同。 最近项目中,遇到一个问题,就是如何在主程序运行的同时检测串口的输入,比如输入"q",退出函数。同事推荐用C++的Peek函数,可是我从进入工作以来,在Linux项目中全部使用的是C,唯一知道去的输入的就是getchar()了.下面首先看看C++中的Peek函数(贴自百度百科): C++中的peek函数 该调用原创 2013-01-04 16:51:14 · 7953 阅读 · 0 评论 -
电脑定时关机—— c 语言
有时电脑需要开着,比如说在很大的压缩文件,需要很长时间。但这时正好有事儿要出去,电脑压缩完又没人关。这时就需要定时关机。下面我用C语言把定时关机程序编写出来。#include#include // 申明调用时间函数#include // 申明调用其他函数int main(void){system("COLOR 0A");int i; int j;struct转载 2011-11-18 11:06:42 · 1367 阅读 · 0 评论 -
判断网络文件是否存在(VC源码)
有时候,用下载工具下载网络文件需要等待很久,不知道是否有网络资源,这是就需要判断网络文件是否存在。下面我用VC++6.0编写出来。新建一个MFC对话框程序,添加文本编辑框、按钮控件,ID分别设为IDC_EDIT_Link,IDC_BTN_CHECK程序代码://添加头文件 #include void CJudgeNetFileDlg::OnBtnCheck() {// TO转载 2011-11-18 11:03:08 · 1837 阅读 · 0 评论 -
c++实现文件传输之四:断点传输
所谓的断点续传就是指:文件在传输过程式中被中断后,在重新传输时,可以从上次的断点处开始传输,这样就可节省时间,和其它资源.实现关键在这里有两个关键点,其一是检测本地已经下载的文件长度和断点值,其二是在服务端调整文件指针到断点处实现方法我们用一个简单的方法来实现断点续传的功能.在传输文件的时候创建一个临时文件用来存放文件的断点位置在每次发送接受文件时,先检查有没有临时文件,如果有的话原创 2011-11-18 10:59:21 · 1686 阅读 · 0 评论 -
c++实现文件传输之三:断点续传与多线程传输转
继木马编程DIY的上两篇,现在我们开始讨论断点续传与多线程文件传输的实现.其实这两项功能是下载软件所必不可少的功能了,现在我们把它加到自己的木马中来感受感受.提到多线程下载,首先向网络蚂蚁的作者洪以容前辈致敬,正是由于网络蚂蚁而使得多线程下载被关注并流行起来.在这本篇文章中我们将简单的实现支持断点续传和多线程传输的程序.为了更清晰的说明问题,我们将断点续传与多线程传输分别用两个程序来实转载 2011-11-18 10:58:45 · 949 阅读 · 0 评论 -
c++实现文件传输之二
在上一篇中,我们以经介绍了程序的流程和框架,在本篇将详细讨论各个功能的实现主要包括1.获取磁盘信息2.获取目录信息3.获取文件信息4.运行指定文件5.删除指定文件6.删除指定目录7.创建指定目录8.上传下载文件9.获取远程文件图标获取磁盘信息磁盘信息可以用API GetDriveType来实现,它以路径名作为参数(如C:\)返回磁盘类型,其实例代转载 2011-11-18 10:58:03 · 1453 阅读 · 0 评论 -
c++实现文件传输之一:框架结构和界面实现
在木马中文件管理的重要性,是无需质疑的,对于文件的管理,做到并不难,但做好却也不易在我们编写一个功能完整的“文件木马”其实现效果如图所示。为了文章的完整性,我们将分为数篇来介绍,本文主要介绍程序的整体框架和界面实现,在以后的文章中将以此框架为基础实现详细的功能。实现:枚举磁盘,枚举目录,获取文件信息上传文件,下载文件,执行文件,创建目录,删除目录等传输控制结构要实现转载 2011-11-18 10:57:08 · 795 阅读 · 0 评论 -
最小化到托盘函数
很多程序希望它能在后台运行,这时需要最小化到托盘,所以就有编写最小化到托盘函数的必要了。其实是用到了NOTIFYICONDATA 结构void TuoPan(HWND hwnd){NOTIFYICONDATA nid;ZeroMemory(&nid, sizeof(nid));HGLOBAL hResource = LoadResource ((HINSTANCE)GetW转载 2011-11-18 10:54:40 · 547 阅读 · 0 评论 -
发送文件夹的方法(VC)
发送文件夹有很多方法,但是网上的代码很少,VC只有飞鸽有源代码,但是它采用的API的编程模式,不容易理解,加之注释又是日文或英文的,这样理解起来就更困难些. 有很多人在网上发帖子询问如何发送文件夹,有人回答:用Winraar压缩再传,说实话是个方法,但是是个很无聊的方法.还有人说先遍历文件,发现是目录就叫对方建立一个.这个也是个方法,但是有些复杂,尤其是目录又深又多,难免出错.转载 2011-11-18 10:50:42 · 1083 阅读 · 0 评论 -
VC初始化下拉列表框的内容
要使程序运行的时候就有,将添加项目的功能放在对话框的 OnInitDialog里面, CComboBox* combo= ( CComboBox*)GetDlgItem(ID_COMBO1);combo->AddString("A");combo->AddString("b");combo->AddString("c");combo->SetCurSel(0);// 设置默认显示的项原创 2011-11-18 10:48:28 · 5250 阅读 · 1 评论 -
VC++6.0中显示打开文件路径对话框
上传文件、保存文件、添加文件之类的操作经常,就需要找到文件的全路径。程序中就要弹出选择路径的“打开文件”对话框。下面就用VC++6.0 MFC来实现。在对话框程序中,添加编辑框 IDC_EDIT 和按钮 IDC_Open程序主要代码如下:void CMyDlg::OnOpen() {CString m_strFileName;// TODO: Add your cont原创 2011-11-18 10:46:01 · 7714 阅读 · 1 评论 -
全局变量的使用
[ VC ]:全局变量一般这样定义:1。在一类的.cpp中定义 int myInt;然后再在要用到的地方的.cpp里extern int myInt;这样就可以用了。2。在stdafx.cpp中加入:int myInt;然后在stdafx.h中加入:extern int myInt这样定义以后无论在什么文件中都是可见的.原创 2011-12-21 10:31:44 · 521 阅读 · 0 评论 -
怎样将数字转换为字符串?
#include void main(){ int x=333; int num=123456; char str[20]; sprintf(str,"%d",num); printf("str = %s\n",str); sprintf(str,"%d",x); printf("str= %s \n",str);}原创 2012-01-10 20:06:56 · 894 阅读 · 0 评论 -
VC 函数 SetTimer
定义:SetTimer( HWND hWnd ,//句柄 用0也行 UINT nIDEvent,//定时器的序号 UINT uElapse,//间隔时间 单位为毫秒 TIMERPROC lpTimerFunc//回调函数 );KillTimer( HWND hWnd, UINT uIDEvent);实例一:#原创 2013-01-01 15:45:22 · 1808 阅读 · 0 评论 -
SendMessage 和 PostMessage 的区别
1、首先是返回值意义的区别,我们先看一下 MSDN 里的声明:LRESULT SendMessage( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);BOOL PostMessage( HWND hWnd, UINT Msg转载 2012-12-28 08:05:02 · 793 阅读 · 0 评论