- 热门文章:
- · VC雕虫小技集(三)
- · VC雕虫小技集(四)
- · VC雕虫小技集(五)
- · VC雕虫小技集(六)
- · VC雕虫小技集(七)
- · 编程语言的异同及选择
- · 流媒体学习笔记----配置一个编码进程
- · 流媒体学习笔记---------编码视频的预览
- · 在VC中动态改变菜单
- · VC++ ADO开发实践之一
- · VC++ ADO开发实践之二
- · VC++ ADO开发实践之三
VC雕虫小技集(二)
VC雕虫小技集(二)
1,如果你没有定义_UNICODE,则LPCTSTR代表 const char * ,因此直接使用就可以了.
如果定义了_UNICODE ,LPCTSTR代表 const wchar_t* ,就不能直接使用了.
2,得到鼠标的位置
DWORD dw = GetMessagePos();
CPoint pt(LOWORD(dw),HIWORD(dw));//鼠标的屏幕坐标
CWnd::ScreenToClient();
3,得到文件的长度
方法一:HANDLE hHandle;
DWORD dwSize;
hHandle = ::CreateFile((LPCTSTR)strZipfile,GENERIC_READ,
FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,
NULL);
if(hHandle == INVALID_HANDLE_VALUE)
return FALSE;
dwSize = ::GetFileSize(hHandle,NULL);
CloseHandle(hHandle);
方法二:CString szFile="c:\aaa.txt";
int nFileSize=0;
CFileFind finder;
if(finder.FindFile(szFile)){
finder.FindNextFile();
nFileSize = finder.GetLength(); //文件大小在这里
finder.Close();
}
方法三:CStdioFile sf;
….
sf.GetLength();
4,CArray没有"=",但有copy.
CStringArray arr1,arr2;
arr1.Add("0");
arr2.Add("a");
arr1.Copy(arr2);
5,如何得到view类的句柄
不要忘记了# include 文件
CMyView *pView = (CMyView *)((CMainFrame *)AfxGetMainWnd())->GetActiveView();
pView->m_hWnd就是
6,自定义消息
下面是增加自定义消息的步骤:
第一步:定义消息。开发Windows95应用程序时,Microsoft推荐用户自定义消息至少是WM_USER+100,因为很多新控件也要使用WM_USER消息。
第二步:实现消息处理函数。该函数使用WPRAM和LPARAM参数并返回LPESULT。
LPESULT CMainFrame::OnMyMessage(WPARAM wParam, LPARAM lParam)
{
// TODO: 处理用户自定义消息
...
return 0;
}
第三步:在类头文件的AFX_MSG块中说明消息处理函数:
class CMainFrame:public CMDIFrameWnd
{
...
// 一般消息映射函数
protected:
// {{AFX_MSG(CMainFrame)
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnTimer(UINT nIDEvent);
afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
}
第四步:在用户类的消息块中,使用ON_MESSAGE宏指令将消息映射到消息处理函数中。
BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)
//{{AFX_MSG_MAP(CMainFrame)
ON_WM_CREATE()
ON_WM_TIMER()
ON_MESSAGE(WM_MY_MESSAGE, OnMyMessage)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
如果用户需要一个整个系统唯一的消息,可以调用SDK函数RegisterWindowMessage并使用ON_REGISTER_MESSAGE宏指令取代ON_MESSAGE宏指令,其余步骤同上。
7,wscanf是scanf的宽字符版本,用法与scanf是一样的,用来读取stdin流,并将信息存储到其参数列表指定的变量中。
cin 对象是由istream类所衍生出的,主要用来将数据由标准输入装置输入到程序中的变量,通过cin输入的数据,必须以字节流的格式组成,cin搭配“>>”用算符
- · VC++ ADO开发实践之四
- · VC++ ADO开发实践之五
- · VC++ ADO开发实践之六
- · VC++ ADO开发实践之七
- · 图像平滑滚动效果的VC实现
- · VC中给树形控件的图标加上工具提示
- · VC++实现拨号上网程序
- · C++关键字(static/register/atuo/extern/volatile/const)释疑
- · .Net中的反射使用入门
- · 站在面相对象角度小议C++
- · Learn c++ step by step
- · Learn C++ step by step(2)
- · C++中的文件输入/输出(6):一些有用的函数
- · 如何在自己的程序中加入宏的功能
- · 在应用程序中将OJB作为一个存储层使用(一)
- · 在应用程序中将OJB作为一个存储层使用(五)
- · 数据结构学习(C++)续——排序【3】交换排序
- · 也用 C++ 实现 Property 功能
- · 获取网页中的密码和文本输入框的内容
- · 提取网页所有链接
- · 平台+插件软件设计思想及基于COM的原型实现
- · 编写驱动拦截NT的API实现隐藏文件目录
- · 用Visual C++编写电子邮件程序
- · VC实现屏幕变暗效果
- · InstallShield6.3安装文件制作要点
- · GeoTiff探索成果总结
- · MapObject控件的使用之加入图层
- · 学好VC++的十大良好习惯
- · MapObject控件的使用之图层操作
- · C++的函数和模板函数
- · 使用c++实现Format函数
- · 读者——写者问题
- · MapObject控件的使用之符号绘制
- · 窗口的无效区域 演示程序
- · c++异常处理
- · 软件生态危机
- · 使用Sniffer截获流经本机网卡的IP数据包
- · 《深入浅出MFC》读书笔记(一,二)
