首页 > 其他分享 >VC雕虫小技集(一)

VC雕虫小技集(一)

时间:2022-10-05 11:39:28浏览次数:39  
标签:文件 VC int VK 菜单 bool NULL 雕虫小技

VC雕虫小技集(一)
何志丹

1,避免随机数相同,可以取当前时间,读文件,读任意内存(如未定义变量,有一定危险).
CTime t = CTime::GetCurrentTime();
int n = t.GetMinute() * 60 + t.GetSecond();
while(n-- > 0)
{
rand();
}
const int N = 100;
int result = rand()%N;





2, 字符串与数的转换
sprintf,sscanf,其实还有其它许多函数,但只这两个函数是最容易记住的.因为它们和printf,scanf,fprint,fscanf的用法类似.
char str[100];
int x = 5;
sprintf(str,"%d",x);
sscanf("10","%x",&x);




3,看一个键是否处于按下状态以及是否被按下过.
SHORT key = GetAsyncKeyState(VK_F11);
0x8001处于被按下状态
1两次调用GetAsyncKeyState(VK_F11);之间,f11被按下过.
GetAsyncKeyState,GetKeyState指定虚拟码为VK_LBUTTON,VK_RBUTTON就可判断鼠标是否被按下过


4,如何删除一个类.
方法一:
1,把文件删除.
2,再打开类向导(Ctrl+W)类向导找不到文件,会弹出一个对话框ReMove就行了.
方法二:
1,FileView中删除.
2,物理删除.



5,自定义的类没了:
project->Add to project ->files


6,使用PI
include math.h
#define _USE_MATH_DEFINES
#include "math.h"

M_PI 就是pi了


7,请问怎样可以获得分区的卷标??
char buf[MAX_PATH];
GetVolumeInformation("c://", buf, MAX_PATH, NULL, NULL, NULL, NULL, NULL);
AfxMessageBox(buf);


8,打开一个网页
ShellExecute(::GetDesktopWindow(),_T("open"),//SK modified for Unicode
_T("http://www.sohu.com"),NULL,NULL,//SK modified for Unicode
SW_MAXIMIZE);


9,关闭时,弹出对话框让用户确认
void CMainFrame::OnClose()
{
if(IDOK != MessageBox("你要退出吗?点确定退出","你要退出吗?",MB_OKCANCEL))
return ;
CFrameWnd::OnClose();
}


10,菜单小问题
ID_FILE_OPEN
在资源Accelerator中为:
ID Key
ID_FILE_OPEN Ctrl+O
表示在程序中按ctrl+o组合键激活打开菜单(如果文件菜单打开了,就无效).
在资源Menu中为:
ID_FILE_OPEN的标题为打开(&O).../tCtrl+O
&O表示当它的父菜单(文件菜单)被打开后,O激活文件菜单.


11,Sizeof有问题??
class B
{
bool a;
bool c;
int b;
}; // sizeof (B) == 8
布局:
1 2 3 4
bool bool 填充 填充
1 2 3 4
int ...............
一目了然.:)
这个时候编译器只在c后插入两个填充字节,因为b占四个字节,所以自动的以一个字的二进制来填充.
这是编译器的对齐问题,只要在前面加入
#pragma 1
使得按一个byte对齐就可以了.

标签:文件,VC,int,VK,菜单,bool,NULL,雕虫小技
From: https://blog.51cto.com/u_15724537/5732432

相关文章

  • VC雕虫小技集(二)
    VC雕虫小技集(二)何志丹1,如果你没有定义_UNICODE,则LPCTSTR代表constchar*,因此直接使用就可以了.如果定义了_UNICODE,LPCTSTR代表constwchar_t*,就不能直接使用......
  • vc入门宝典四(常用控件)
    常用控件何志丹主要内容:1,按钮(1),位图按钮及动态按钮(2),自画按钮2,列表框3,编辑控件和CRichEdit4,CSliderCtrl按钮的使用十分简单,拖一个到对话框,双击它就可以......
  • vc入门宝典(九)
    集合类使用心得何志丹MFC提供集合类(Collect)专门负责数据对象的存储和管理,MFC的集合类分为三类,分别用于处理三类不同性质的数据结构:表(List,类似于数据结构的双链表),数......
  • VC雕虫小技集(七)
    VC雕虫小技集(七)何志丹1,图片控件右键属性type:bitmap你直接选image也行IDB_BITMAP1位图的IDm_ctrl是与图片控件相关联的控制型变量voidCDlg2Dlg::OnButton1(){......
  • VC入门宝典十一(xml)
    xml                                                 何志丹我们建立一个xml文件,内容如图所示:一,建立一个基于对......
  • Azure DevOps Server 2022新功能:全新的TFVC操作界面
    AzureDevOpsServer(之前名称为TFS)从2013年开始就支持分布式(Git)和集中式(TFVC)两种代码库,近年来由于Git被软件研发团队广泛采纳,集中式代码库(TFVC或SVN)逐渐被开发人员抛弃;但......
  • VC雕虫小技集(五)
    VC雕虫小技集(五)何志丹1,vc中右键点击一个类或宏,可以察看他的定义,但如何返回初始地方呢?installvisualassist,anduseAlt+leftarrow按菜单中的后退(<-转45度)按......
  • VC入门宝典三(String)
    CString何志丹主要内容:1,主要函数的实现2,常用函数3.CString与char[]的相互转换4,将NULL字节放入CString中vc中最主要函数不易理解。CString::CString(c......
  • vc入门宝典七(工具栏)
    工具栏                    何志丹主要内容:1,概要。2,常用函数3,实例。4,动态建立工具条5,在工具栏中嵌控件6,用对话框加位图......
  • vc6.0安装失败解决办法
                                                       ​​何志丹​​---------------------下面的部分是亲身经历安装盘所在目录和安装后......