WINCE应用程序(VC)
Elecsoft
胸怀大志,脚踏实地,目前从事Windows CE学习和开发,相信自己能成就亿翻事业。
展开
-
浅谈C++容器
浅谈C++容器(转) 什么是容器 首先,我们必须理解一下什么是容器,在C++ 中容器被定义为:在数据存储上,有一种对象类型,它可以持有其它对象或指向其它对像的指针,这种对象类型就叫做容器。很简单,容器就是保存其它对象的对象,当然这是一个朴素的理解,这种“对象”还包含了一系列处理“其它对象”的方法,因为这些方法在程序的设计上会经常被用到,所以容器也体现了一个好处,就是“容器类是一种对特定代码转载 2011-10-22 10:57:09 · 1658 阅读 · 1 评论 -
VC++列表控件的编写
1.CListCtrl控件CListCtrl控件在数据库编程中是用得比较多的控件之一,也是Window控件中较难掌握的一个控件。他可以有四显示方式,Report、List、Icon、SmallIcon。Report报告式列表视图方式在数据库开发中是最常用的一种方式。在控件"properties"的Styles选项卡中在View项可以选择Report方式。Report方式中列表控件的显示方式是有行和列的,行又叫做Item,但有多列是我们只能操作每一行的第零列,也就是最前列。转载 2010-07-27 09:12:00 · 3999 阅读 · 0 评论 -
MultiByteToWideChar和WideCharToMultiByte用法详解
//========================================================================//TITLE:// MultiByteToWideChar和WideCharToMultiByte用法详解//AUTHOR:// norains//DATE:// 第一版:Monday 25-December -2006// 增补版:Wednesday 27-December -2006// 修订转载 2010-07-22 23:12:00 · 647 阅读 · 0 评论 -
指针和数组长度求法
要求指针和数据的长度,方法如下: 指针: char* pBuf; pBuf = "abcefghijilmn"; int num; num = strlen(pBuf); 数组: BYTE Temp[50]; int num;原创 2010-05-26 18:03:00 · 996 阅读 · 0 评论 -
c++ string 的函数replace()用法
basic_string::max_size 返回string 能放的最大元素个数。(不同于capacity) size _ type max _ size( ) const; basic_string ::size_type cap, max; cap = s.capacity ( ); max = s.max_size ( ); // max=4294967294. basic_string::rfind转载 2010-07-22 11:17:00 · 887 阅读 · 0 评论 -
C++string类常用函数
string类的构造函数:string(const char *s); //用c字符串s初始化string(int n,char c); //用n个字符c初始化此外,string类还支持默认构造函数和复制构造函数,如string s1;string s2="hello";都是正确的写法。当构造的string太长而无法表达时会抛出length_error异常 string类的字符操作:const char &operator[](int n)const;const c转载 2010-07-22 11:27:00 · 627 阅读 · 0 评论 -
VC编辑框(EDIT)的自动换行与自动滚屏
经过多次测试,总结出VC编辑框(EDIT)的自动换行与自动滚屏的方法。转载 2010-07-17 10:41:00 · 1093 阅读 · 0 评论 -
VC两对话框类之间消息传送数据
前一个博客是从一个对话框类向视图类发送自定义的消息,本博客是写写关于两对话框之间自定消息发送,原创 2010-07-14 22:37:00 · 1044 阅读 · 0 评论 -
vc自定义消息的发送与接收的方法实现
以下用一个自创的对话框类(MyMessageDlg)向视图类(MessageTestView)发送自定义消息为例,说明这两种不同方法的自定义消息的消息传递的方法一:使用ON_MESSAGE使用ON_MESSAGE响应消息,必须配合定义消息#define WM_MY_MESSAGE (WM_USER+100)对于发送消息者-MyMessageDlg,在其MyMessageDlg.h中,定义#define WM_MY_MESSAGE (WM_USER+100)在其MyMessag转载 2010-07-14 18:26:00 · 976 阅读 · 0 评论 -
vc下cstring转换为floatvc类型转换
CString str = CString("Almost mad!"); float tempFloat = 0.0; tempFloat = atof(str);,但是出现转载 2010-07-13 23:22:00 · 2696 阅读 · 0 评论 -
VC 理解Windows消息机制
Windows系统是一个消息驱动的OS.1、消息的组成:一个消息由一个消息名称(UINT),和两个参数(WPARAM,LPARAM)。当用户进行了输入或是窗口的状态发生改变时系统都会发送消息到某一个窗口。例如当菜单转中之后会有WM_COMMAND消息发送,WPARAM的高字中(HIWORD(wParam))是命令的ID号,对菜单来讲就是转载 2010-07-14 22:46:00 · 913 阅读 · 0 评论 -
vc自定义消息的发送与接收的方法实现
vc自定义消息的发送与接收的方法实现 以下用一个自创的对话框类(MyMessageDlg)向视图类(MessageTestView)发送自定义消息为例,说明这两种不同方法的自定义消息的消息传递的方法一:使用ON_MESSAGE使用ON_MESSAGE响应消息,必须配合定义消息#define WM_MY_MESSAGE (WM_USER+100)对于发送消息者-MyM转载 2010-05-20 13:31:00 · 541 阅读 · 0 评论 -
事件与消息的理解
有时总想把消息和事件弄明白点,下面是自己的一些理解,不知道理解的对不对,先记录一下,以后有更深的理解,在更新博客内容,也希望高手指点一下。。。 事件是一个动作——用户触发的动作。 消息是一个信息——传递给系统的信息。 事件与消息的概念在计算机中较易混淆,但本质不同: 事件由用户(操作电脑的人)触发且只能由用户触发,操作系统能够感觉到由用户触发的事件,并将原创 2010-05-20 11:48:00 · 864 阅读 · 0 评论 -
VC中CString和WPARAM之间的相互转换(结构体变量和WPARAM之间的转换)
VC中CString和WPARAM之间的相互转换(结构体变量和WPARAM之间的转换)转载 2010-07-15 12:55:00 · 2313 阅读 · 0 评论 -
vc picture控件的使用
vc picture控件的使用转载 2010-06-02 22:37:00 · 1269 阅读 · 0 评论 -
CString.Format 用法
Format 指定输出格式,后面跟要输出的变量 目前 printf 支持以下格式: %c 单个字符 %d 十进制整数 %f 十进制浮点数 %o 八进制数 %s 字符串 %u 无符号十进制转载 2010-07-27 18:05:00 · 1406 阅读 · 0 评论 -
Ansi、Unicode、UTF8字符串之间的转换和写入文本文件
最近有人问我关于这个的问题,就此写一篇blogAnsi字符串我们最熟悉,英文占一个字节,汉字2个字节,以一个/0结尾,常用于txt文本文件Unicode字符串,每个字符(汉字、英文字母)都占2个字节,以2个连续的/0结尾,NT操作系统内核用的是这种字符串,常被定义为typedef unsigned short wchar_t;所以我们有时常会见到什么char*无法转换为unsigned short*之类的错误,其实就是unicodeUTF8是Unicode一种压缩形式,英文A在unicode转载 2010-07-28 14:54:00 · 1407 阅读 · 0 评论 -
VC数据类型
VC基础数据类型大全(学习VC必须知道的)标识符 实际类型 意义 CHAR char 8位Windows(ANSI)字符。 CCHAR char 8位Windows(ANSI)字符。 PSZ char* 一个以"NULL"结束的Windows字符串的指针转载 2011-10-17 09:40:13 · 652 阅读 · 0 评论 -
常用数据类型使用转换详解
读者层次:初学刚接触VC编程的朋友往往对许多数据类型的转换感到迷惑不解,本文将介绍一些常用数据类型的使用。我们先定义一些常见类型变量借以说明int i = 100;long l = 2001;float f=300.2;double d=12345转载 2011-10-17 10:01:04 · 876 阅读 · 0 评论 -
多个定时器的使用
一、定时器的基本使用方法在编程时,会经常使用到定时器。使用定时器的方法比较简单,通常告诉WINDOWS一个时间间隔,然后WINDOWS以此时间间隔周期性触发程序。通常有两种方法来实现:发送WM_TIMER消息和调用应用程序定义的回调函数。1.1 用WM_TIMER来设置定时器先请看SetTimer这个API函数的原型 UINT_PTR SetTimer(转载 2010-08-04 16:05:00 · 2519 阅读 · 0 评论 -
临界区,互斥量,信号量,事件的区别
四种进程或线程同步互斥的控制方法1、临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。 2、互斥量:为协调共同对一个共享资源的单独访问而设计的。 3、信号量:为控制一个具有有限数量用户资源而设计。 4、事 件:用来通知线程有一些事件已发生,从而启动后继任务的开始。 临界区(Critical Section)保证在某一时刻只有一个线程能访问数据的简便办法。在任意时刻只允许一个线程对共享资源进行访问。如果有多个线程试图同时访问临界区,那么在有一个转载 2010-08-02 17:29:00 · 1473 阅读 · 0 评论 -
VC多线程临界区
在使用多线程时,一般很少有多个线程完全独立的工作。往往是多个线程同时操作一个全局变量来获取程序的运行结果。多个线程同时访问同一个全局变量,如果都是读取操作,则不会出现问题。如果是写操作,则会发生错误。这时候,我们可以通过临界区,为全局变量设置一个保护,保证同时只有一个线程可以访问此变量,其他变量进入等待状态。转载 2010-08-03 08:07:00 · 1126 阅读 · 0 评论 -
VC中 DLL调试
方法①: 对DLL的工程DEBUG,在DLL工程的Project Setting->Debug->Executable for debug session中加入你的.exe的路径和名字。可以在dll中设置断点,.exe程序必须要调用dll中函数。方法②: 有个更好的方法:(我也没试过)在settings/debug中category选additional dlls,然后将你要调试的dll加进来。这样,即使你用loadlibrary动态加载dll,也可以加断点了。在VS.net的测转载 2010-08-01 22:39:00 · 750 阅读 · 0 评论 -
网络编程故障
最近把别人的代码移到自己的程序中出现一个错误,忙忽了半天才解决,别人的代码的头文件为#include "winsock.h",而我移植到ARM9(2240)下时却运行不了,编译出现大量错误,最后才发现头文件应改为#include "afxsock.h",好像别人的代码 是x86结构下的,还有另一种解决方法是在#include "winsock.h"下面加上#pragma comment(lib,"Ws2.lib");就也能正常 运行,今天 记下这个知识 点,以后使用中注意一下。。。原创 2010-07-31 22:23:00 · 622 阅读 · 0 评论 -
fatal error LNK1112: 模块计算机类型“THUMB”与目标计算机类型“ARM”冲突
fatal error LNK1112: 模块计算机类型“THUMB”与目标计算机类型“ARM”冲突解决办法: 1.新建项目时,在"平台"->"选择要添加到当前项目中的 Platform SDK。"中,把"已安装的 SDK"全部添加到"选定的 SDK" 2.在"属性页"->"配置属性"->"链接器"->"命令行"中的"附加选项"里,有如下命令:"/subsystem:windowsce,4.20 /machine:ARM /ARMPADCODE",在其后加入命令:" /MACHINE:THU转载 2010-07-31 22:13:00 · 954 阅读 · 0 评论 -
wince添加屏幕旋转的支持
今天给公司的S3C2440开发板添加对屏幕旋转的支持,对于标准smdk2440修改过来的BSP,其实LCD驱动部分的代码已经初步的支持了屏幕旋转,只需做一些补充和修改即可。转载 2010-07-31 15:12:00 · 2413 阅读 · 0 评论 -
VC回调函数定义和使用
最近经常使用回调函数,有时感觉有点混乱,对回调函数理解不透,昨天花点时间深深品味了一下回调函数,写下博客记录一下,言规正转,VC中的定时器是一种特殊的回调函数,只要我们设置好了定时器,我们就不用管什么时候调用定时器处理函数,是操作系统就给我调用,定时器的处理函数还是我们自己去写实现。原创 2010-07-31 09:59:00 · 4854 阅读 · 2 评论 -
atoi,atol,strtod,strtol,strtoul实现类型转换
atoi,atol,strtod,strtol,strtoul实现类型转换转载 2010-06-02 11:53:00 · 834 阅读 · 0 评论 -
VC配置文件ini的读写
ini文件(即Initialization file),这种类型的文件中通常存放的是一个程序的初始化信息。ini文件由若干个节(Section)组成,每个Section由若干键(Key)组成,每个Key可以赋相应的值。读写ini文件实际上就是读写某个的Section中相应的Key的值,而这只要借助几个函数即可完成。转载 2010-06-02 11:49:00 · 2429 阅读 · 0 评论 -
ListCtrl 使用技巧
CListCtrl 使用技巧 以下未经说明,listctrl默认view 风格为report相关类及处理函数转载 2010-07-28 16:20:00 · 1494 阅读 · 1 评论 -
CString 转换成TCHAR *的方法
今天遇到一个难题,以前一直都是从TCHAR *转换到CString,今天需要CString 转换成TCHAR *的方法,找了一下MSDN文档,没有发现有现成的函数可以用。后来上网搜索了一下,方法还不少。如下几种:方法一,使用强制转换。例如:转载 2010-07-15 12:54:00 · 9386 阅读 · 0 评论 -
VC关于对话框界面上按回车和ESC键退出问题的处理
处理方法一 会有个问题就是把系统菜单上的关闭事件也屏蔽掉了。:去除OnOK和OnCancel的默认处理 一. 去掉OK和CANCEL按钮,然后在.h中的下面位置加入 // Generated message map functions virtual void OnOK(); virtual void OnCancel(); DECLARE_MESSAGE_MAP转载 2010-05-15 08:48:00 · 2057 阅读 · 0 评论 -
关于SetTimer
最近做一个项目中用到了SetTimer 和 Date Time Picker控件,SetTimer 是用来定时获取系统时间,Date Time Picker是用来通过他来调节系统时间的,但发现 Date Time Picker 关联一个CTime类型的成员变量时,Date Time Picker 就不能改变他的值,只要一改变他的值 后,定时时间到了,Date Time Picker 又回到原创 2010-04-25 10:53:00 · 1184 阅读 · 0 评论 -
VC--获取系统时间
VC--获取系统时间 1.使用CTime类CString str;//获取系统时间CTime tm;tm=CTime::GetCurrentTime();str=tm.Format("现在时间是%Y年%m月%d日 %X");MessageBox(str,NULL,MB_OK);2: 得到系统时间日期(使用GetLocalTime)SYSTEMTIME st;CString strD转载 2010-04-22 09:07:00 · 1121 阅读 · 0 评论 -
VC改变控件的背景颜色 字体 文本颜色
VC改变控件的背景颜色 字体 文本颜色1.为对话框类添加WM_CTLCOLOR的响应函数afx_msg HBRUSH OnCtlColor(CDC*pDC,CWnd*pWnd,UINT nCtlColor){...}2.定义一个m_brush(CBrush类型)的成员变量和一个m_font(CFont类型)成员变量,在构造函数中初始化,例如:m_brush.Create转载 2010-04-23 08:44:00 · 1941 阅读 · 0 评论 -
[VC] 设置系统时间
主要讲如何在VC里进行系统时间设置。1、使用API函数SetLocalTime进行本地时间设置。1)SetLocalTime函数的原型:BOOL SetLocalTime( const SYSTEMTIME *lpSystemTime );输入参数lpSystemTime是一个SYSTEMTIME类型的参数,如果设置成功,返回true,本地时间将会变成lpSystemT转载 2010-04-23 11:02:00 · 2417 阅读 · 0 评论 -
进程间通信
进程间通信 摘 要 随着人们对应用程序的要求越来越高,单进程应用在许多场合已不能满足人们的要求。编写多进程/多线程程序成为现代程序设计的一个重要特点,在多进程程序设计中,进程间的通信是不可避免的。Microsoft Win32 API提供了多种进程间通信的方法,全面地阐述了这些方法的特点,并加以比较和分析,希望能给读者选择通信方法提供参考。1 进程与进程通信 进程是装入内存并准备转载 2010-04-08 09:19:00 · 1209 阅读 · 0 评论 -
Group Box覆盖Button
Group Box覆盖Button 基于对话框的MFC应用程序先拖进去一个Group Box控件然后在Group Box控件的框里放置一个Button控件结果程序跑起来之后居然看不见Button发现是被Group Box控件给覆盖了这个小问题居然给我搞晕了后来发现先放置按钮控件,按钮摆放好了最后重新拖进一个Group Box控件将这些按钮扩起来转载 2010-04-10 17:30:00 · 2140 阅读 · 4 评论 -
VC2005下tab控件的使用
VC2005下tab控件的使用1> 建立一个基于对话框的MFC智能设备应用程序。2> 在主对话框中,添加一个Tab Control控件。3> 为控件添加一个CtabCtrl类型的变量,如m_tabctrl。4> 通过MFC类向导,添加几个新的对话框, 做为Tab Control的子对话框。5> 修改新添加的对话框的属性,Border属性设置为None, Sytl转载 2010-04-10 15:21:00 · 1698 阅读 · 0 评论 -
VC中如何关闭窗口退出程序?
VC中如何关闭窗口退出程序?1、OnOK()或OnCancel()//只对窗口程序有用2、PostQuitMessage(0);//最常用3、ExitProcess(0);4、void CMainFrame::OnClose() {// TODO: Add your message handler code here and/or call defaultif (MessageBox("确定要转载 2010-04-09 18:03:00 · 4187 阅读 · 0 评论