VC 常用
转载请注明来源:https://www.cnblogs.com/hookjc/
--------------------------------------------------------------
第一章
----------------------------------------------------------------
001 如何创建消息框
MessageBox("Zhang Mingwen , Hwllo!");
002 如何设置消息框的标题
MessageBox("Zhang Mingwen , Hwllo!","zmw");
003 如何使用资源串创建消息框
AfxMessageBox(AFX_IDS_IDLEMESSAGE);
AFX_IDS_IDLEMESSAGE在资源的String Table中对应标题是 就绪
004 如何使用资源串动态显示消息框内容
CString str;
AfxFormatString1(str,AFX_IDS_IDLEMESSAGE,"Hello,");
AfxMessageBox(str);
005 如何使用消息框显示问号图标
AfxMessageBox("zhang",MB_ICONQUESTION);
006 如何使消息框显示 是否 按钮
if (AfxMessageBox("zhang",MB_YESNO)==IDYES)
MessageBox("你选择了是","信息提示",MB_OK);
else
MessageBox("你选择了不是","信息提示",MB_OK);
007 如何使消息框显示“重试取消”按钮
MessageBox("操作失败,是否重试?","信息提示",
MB_ICONQUESTION|MB_RETRYCANCEL);
--------------------------------------------------------------------------------
第二章
--------------------------------------------------------------------------------
008 如何使用滑块控件
this->m_MySlider.SetRangeMin(0);
this->m_MySlider.SetRangeMax(20);
this->m_MySlider.SetPos(10);
SetTimer(1,5,NULL);
int iPos=this->m_MySlider.GetPos();
this->m_SliderValue.Format("%d",iPos);
UpdateData(false);
---------------------------------------------------------------------------------
011 如何使用列表控件
列表控件与ClistCtrl类相关联,该类的常用成员函数如下:
SetItemState() 设置列表控件中一个项目的状态
SetItemText() 设置列表控件中一个项目的文本
SetItemCount() 设置列表控件的项目数量
GetItemText() 获得一个列表项目的文本
GetItemState() 获得一个列表项目的状态
GetItemCount() 获得列表控件中的项目总数
GetSelectedCount()获得选中的项目总数
FindItem() 查找具有特定字符的项目
SortItems() 对列表中的项目排序
InsertItem() 插入一个新的项目
InsertColumn() 插入一个新的项目栏
DeleteColumn() 删除一个项目栏
DeleteItem() 删除一个项目
DeleteAllItems() 删除所有的项目
1.添加列表控件,ID_MYLIST 属性View (报告)
添加编辑控件,ID_EDITSHOWINFO
2.添加初始化代码
BOOL CzhangworkDlg::OnInitDialog()
{
// TODO: 在此添加额外的初始化代码
m_Mylist.InsertColumn(0,"name",LVCFMT_LEFT,100,-1);
m_Mylist.InsertColumn(1,"size",LVCFMT_LEFT,100,-1);
m_Mylist.InsertColumn(2,"type",LVCFMT_LEFT,100,-1);
int Pos;
Pos=m_Mylist.InsertItem(0,"CHIMS");
m_Mylist.SetItemText(Pos,1,"55kb");
m_Mylist.SetItemText(Pos,2,"波形声音");
Pos=m_Mylist.InsertItem(1,"CHIMS");
m_Mylist.SetItemText(Pos,1,"55kb");
m_Mylist.SetItemText(Pos,2,"波形声音");
UpdateData(false);
return TRUE; // 除非设置了控件的焦点,否则返回 TRUE
}
3.重写列表控件 NM_CLICK消息处理函数
void CzhangworkDlg::OnNMClickMylist(NMHDR *pNMHDR, LRESULT *pResult)
{
// TODO: 在此添加控件通知处理程序代码
for (int i=0;i<m_Mylist.GetItemCount();i++)
{
if (m_Mylist.GetItemState(i,LVIS_SELECTED)==LVIS_SELECTED)
{
CString StrInfo,Str;
Str=m_Mylist.GetItemText(i,0);
StrInfo="name";
StrInfo+=Str+":";
Str=m_Mylist.GetItemText(i,1);
StrInfo+="size";
StrInfo+=Str+":";
Str=m_Mylist.GetItemText(i,2);
StrInfo+="type";
StrInfo+=Str;
GetDlgItem(IDC_EDITSHOWINFO)->SetWindowText(StrInfo);
}
}
*pResult = 0;
}
----------------------------------------------------------------------------------
CTime t=CTime::GetCurrentTime(); //获得系统的时间
CString str=t.Format("%H:%M:%S");
-----------------------------------------------------------------------
043 如何获得标题栏的高度
void CZhangPicWorkView::OnShowheihght()
{
// TODO: 在此添加命令处理程序代码
CString StrArea;
StrArea.Format("标题栏的高度:%d",GetSystemMetrics(SM_CYCAPTION));
//获得高度的函数GetSystemMetrics(SM_CYCAPTION)
MessageBox(StrArea,"信息提示",MB_OK);
}
---------------------------------------------------------------------------
044 设置标题栏的文字
void CZhangPicWorkView::OnSetwordofcapytoion()
{
// TODO: 在此添加命令处理程序代码
CWnd *pWnd;
pWnd=::AfxGetMainWnd();
pWnd->SetWindowText("zhangmingwen");
}
--------------------------------------------------------------------------
045 如何获得标题栏的颜色
void CZhangPicWorkView::OnGetcolorofcaption()
{
// TODO: 在此添加命令处理程序代码
DWORD Color=GetSysColor(COLOR_CAPTIONTEXT);
CString StrColor;
StrColor.Format("标题栏的颜色:RGB(%d,%d,%d)",
GetRValue(Color),GetGValue(Color),GetBValue(Color));
MessageBox(StrColor,"信息提示",MB_OK);
}
-----------------------------------------------------------------------
046 设置标题栏的文字颜色 (功能太强大了啊)
void CZhangPicWorkView::OnSettehecolorof()
{
// TODO: 在此添加命令处理程序代码
int Elements[2]={COLOR_CAPTIONTEXT, //活动窗口的颜色是白色
COLOR_INACTIVECAPTIONTEXT}; //不活动的窗口是黑色
DWORD Colors[2]={RGB(0,0,0),RGB(255,255,255)};
SetSysColors(2,Elements,Colors);
}
-----------------------------------------------------------------------
191 字符串的连接,相加
void CmingmingDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
CString Str1="中国";
CString Str2="经济";
CString Str3="发展迅速";
Str1+=Str2+Str3;
MessageBox(Str1,"信息提示",MB_OK);
}
----------------------------------------------------------------
192 字符串的比较
void CmingmingDlg::OnBnClickedButton2()
{
// TODO: 在此添加控件通知处理程序代码
CString Str1="ABCDE";
CString Str2="abcde";
if(Str1.CompareNoCase(Str2)==0) //不区分大小写
MessageBox(Str1+"相同于(使用CompareNoCase比较)"+Str2,"信息提示",MB_OK);
if(Str1.Compare(Str2)!=0) //区分大小写
MessageBox(Str1+"不同于(使用Compare比较)"+Str2,"信息提示",MB_OK);
}
------------------------------------------------------------------------------------
193 从字符串中存取字符
void CmingmingDlg::OnBnClickedButton3()
{
// TODO: 在此添加控件通知处理程序代码
CString StrInfo="A123B"; //字符串
char MyChar=StrInfo.GetAt(2); //获得下标为2的位置的字符,就是‘2’
StrInfo.SetAt(3,MyChar); //设置下标为3的位置的字符为'2'
char NewChar=StrInfo[2]; //获得下标为2的位置的字符,就是‘2’
StrInfo.SetAt(0,NewChar); //设置下标为0的位置的字符为'2'
MessageBox(StrInfo,"信息提示",MB_OK); //得到2122B
}
---------------------------------------------------------------------------------
计算标题字符串的长度
void CmingmingDlg::OnBnClickedButton4()
{
// TODO: 在此添加控件通知处理程序代码
CString StrTitle;
GetWindowText(StrTitle); //获得窗口的字符串,存在StrTitle
CDC *pDC=GetDC(); //计算出字符串的长度,高度,存放在Size中
CSize Size=pDC->GetTextExtent(StrTitle,StrTitle.GetLength());
CString StrSize; //zSize.cx,Size.cy为长宽值
StrSize.Format("标题字符串长为:%d,宽为:%d",Size.cx,Size.cy);
MessageBox(StrSize,"信息提示",MB_OK);
}
-------------------------------------------------------------------------------
字符串转换为int整形atoi(StrDigital)
void CmingmingDlg::OnBnClickedButton5()
{
// TODO: 在此添加控件通知处理程序代码
CString StrDigital="12345";
int iDigital=atoi(StrDigital)+23456;
StrDigital.Format("%d",iDigital);
MessageBox(StrDigital,"信息提示",MB_OK);
}
-----------------------------------------------------------------
字符串转换为float ,atof(StrDigital)
void CmingmingDlg::OnBnClickedButton5()
{
// TODO: 在此添加控件通知处理程序代码
CString StrDigital="12345.88";
float iFloat=atof(StrDigital)+23456.09;
StrDigital.Format("%f",iFloat);
MessageBox(StrDigital,"信息提示",MB_OK);
}
-------------------------------------------------------------
如果文字超过窗口宽度,将折行显示
void CmingmingDlg::OnBnClickedButton6()
{
// TODO: 在此添加控件通知处理程序代码
CDC *pDC=GetDC();
CString StrInfo="这是一段测试折行显示的文字,如果文字超过窗口宽度,将折行显示。";
CRect Rect;
GetClientRect(&Rect);
pDC->DrawText(StrInfo,Rect,DT_WORDBREAK);
}
------------------------------------------------------------------
时间显示
%a 短格式星期名,就是英文简写
%A 完全格式星期名,全英文
%b 短格式月名,英文简写
%B 完全格式月名,全英文
%c 日期时间, 03/12/09,09:34
%d 天数(01~31),本月的第几天
%H 小时(00~23)
%I 小时(01~12)
%j 天数,本年内的第几天
%m 月数(01~12)
%M 分钟
%p AM/PM表示12小时
%S 表示秒数
%U 一年内的星期数,第几个星期
%w 0~6表示星期数,0表示星期天
%W 一年的星期数
%x 当前日期
%X 当前时间
%y 年份00~99
%Y 4位数的年份
%z 时区名称
%Z 时区名称
%% 百分号
**********************
void CmingmingDlg::OnBnClickedButton7()
{
// TODO: 在此添加控件通知处理程序代码
CString StrInfo;
CTime CurrentTime=CTime::GetCurrentTime();
StrInfo=CurrentTime.Format("%Z:%Y年%m月%d日%H时%M分%S秒");
MessageBox(StrInfo,"信息提示",MB_OK);
}
---------------------------------------------------------------------
显示带省略的字符串
void CmingmingDlg::OnBnClickedButton7()
{
// TODO: 在此添加控件通知处理程序代码
CDC *pDC=GetDC();
CString StrName="这是一个测试省略号的演示字符串";
CSize Size=pDC->GetTextExtent(StrName);
pDC->DrawText(StrName,CRect(10,10,10+Size.cx/2,10+Size.cy),DT_LEFT|DT_END_ELLIPSIS);
pDC->DrawText(AfxGetApp()->m_pszHelpFilePath,CRect(10,40,20+Size.cx/2,40+Size.cy),DT_LEFT|DT_PATH_ELLIPSIS);
}
-------------------------------------------------------------
---------------------------------------------------------------------
206 如何打开文件
菜单项的功能,实现消息响应函数OnFileopen()
void CZhangPicWorkView::OnFileopen()
{
// TODO: 在此添加命令处理程序代码
CString StrFileName="G:\\zhang.txt"; //文件的位置
CFile MyFile;
if (!MyFile.Open(StrFileName,CFile::modeRead,NULL))
{
MessageBox("打开文件操作失败","信息提示",MB_OK);
}
else
{
MessageBox("打开文件操作成功","信息提示",MB_OK);
}
}
-------------------------------------------------------------------------
208 如何读文件
如206只是else中的内容变了
void CZhangPicWorkView::OnFileopen()
{
// TODO: 在此添加命令处理程序代码
CString StrFileName="G:\\zhang.txt";
CFile MyFile;
if (!MyFile.Open(StrFileName,CFile::modeRead,NULL))
{
MessageBox("打开文件操作失败","信息提示",MB_OK);
}
else
{
char Content[15];
MyFile.Read(Content,15);
MessageBox(Content,"信息提示",MB_OK); //代开文件,取出内容,在对话框里显示
CDC *pDC=GetDC();
pDC->TextOut(10,10,Content); //代开文件,取出内容,在界面上显示
}
}
----------------------------------------------------------------------------------
209 如何写文件
void CZhangPicWorkView::OnFilewrite()
{
// TODO: 在此添加命令处理程序代码
CString StrFileName="G:\\zhang.txt";
CFile MyFile;
if (!MyFile.Open(StrFileName,CFile::modeCreate|CFile::modeReadWrite,NULL))
{
MessageBox("打开文件操作失败","信息提示",MB_OK);
}
else
{
char Content[]="电脑、软件、硬件、上网;娱乐、游戏"; //把这些文字写进G:\\zhang.txt
MyFile.Write(Content,::strlen(Content)+1);
MyFile.Close();
MessageBox("操作完成","信息提示",MB_OK);
}
}
-------------------------------------------------------------------------------------
210 文件的定位
void CZhangPicWorkView::OnFilelocated()
{
// TODO: 在此添加命令处理程序代码
CString StrFileName="G:\\zhang.txt";
CFile MyFile;
if (!MyFile.Open(StrFileName,CFile::modeRead,NULL))
{
MessageBox("打开文件操作失败","信息提示",MB_OK);
}
else
{
MyFile.Seek(16,CFile::begin); //文件读取从第16个字节读取
char Content[5000];
MyFile.Read(Content,4500);
MessageBox(Content,"信息提示",MB_OK);
}
}
---------------------------------------------------------------------------------
214 如何判断文件是否存在于磁盘上
void CZhangPicWorkView::OnFileexist()
{
// TODO: 在此添加命令处理程序代码
CFileStatus Status;
if (!CFile::GetStatus("G:\\zhang.txt",Status))
{
MessageBox("G:\\zhang.txt不存在","信息提示",MB_OK);
}
else
{
MessageBox("G:\\zhang.txt存在","信息提示",MB_OK);
}
}
-------------------------------------------------------------------------
218 如何创建一个文本文件
void CZhangPicWorkView::OnCreatatext()
{
// TODO: 在此添加命令处理程序代码
CStdioFile File;
CString FileName="G:\\zhangmingwen.txt"; //创建一个文件在G盘
if (!File.Open(FileName,CFile::modeCreate|CFile::modeWrite|CFile::typeText))
{
MessageBox(FileName+"文件不能创建","信息提示",MB_OK);
}
else
{
MessageBox(FileName+"文件创建成功","信息提示",MB_OK);
}
}
********************************************************
可以创建自己需要的文件的
使用编辑框 变量设置为 CString FileName
可以初始化:E:\\张明文.txt .c .cpp .prt ...
UpdateData(true);
FileName="E:\\\\";
UpdateData(false);
--------------------------------------------------------------------------------
219 如何删除一个文本文件
void CZhangPicWorkView::OnDeletefile()
{
// TODO: 在此添加命令处理程序代码
CString FileName="G:\\zhangmingwen.txt"; //删除该文件
CFile::Remove(FileName);
MessageBox(FileName+"文件删除成功","信息提示",MB_OK);
}
---------------------------------------------------------------------------
219 如何更名一个文本文件
void CZhangPicWorkView::OnFilerename()
{
// TODO: 在此添加命令处理程序代码
CString oldFileName="G:\\zhangmingwen.txt";
CString newFileName="G:\\mingwenzhang.txt";
CFile::Rename(oldFileName,newFileName);
MessageBox(oldFileName+"文件更名成功","信息提示",MB_OK);
}
-------------------------------------------------------------------------
-------------------------------------------------------------------------------
269 如何获得系统显示元素的颜色
void CZhangPicWorkView::OnShoewthecolor()
{
// TODO: 在此添加命令处理程序代码
CString StrInfo;
COLORREF CaptionColor=GetSysColor(COLOR_ACTIVECAPTION);
StrInfo.Format("活动标题栏的颜色:RGB(%d,%d,%d)",
GetRValue(CaptionColor),GetRValue(CaptionColor),GetRValue(CaptionColor));
MessageBox(StrInfo,"信息提示",MB_OK);
}
-------------------------------------------------------------------------------
275 如何清空回收站(好厉害的功能啊!哈哈)
添加头文件 #include "Shellapi.h"
void CZhangPicWorkView::OnClearrecyclevbox()
{
// TODO: 在此添加命令处理程序代码
SHEmptyRecycleBin(NULL,NULL,SHERB_NOCONFIRMATION|SHERB_NOPROGRESSUI|SHERB_NOSOUND);
MessageBox("回收站已经清空","信息提示",MB_OK);
}
------------------------------------------------------------------------------------
309.获得系统的用户名称
void CInfDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
char UserName[MAX_PATH];
CString strUserName;
DWORD size=MAX_PATH; //以上不动
::GetUserName(UserName,&size); //通过API函数获得用户名
strUserName.Format("%s",UserName);//用户名存放在字符串中,可以调用她
MessageBox("用户名称:"+strUserName,"Information",MB_OK|MB_OKCANCEL|MB_ICONSTOP);//设置图标和各种按钮
}
____________________________________________________________
310.获得系统的计算机名称
void CInfDlg::OnBnClickedButton2()
{
// TODO: 在此添加控件通知处理程序代码
char ComputerName[MAX_PATH];
CString strComputerName;
DWORD size=MAX_PATH; //以上不动
::GetComputerName(ComputerName,&size); //通过API函数获得计算机名
strComputerName.Format("%s",ComputerName); //用计算机名存放在字符串中,可以调用她
MessageBox("用户名称:"+strComputerName,"Information",MB_OK|MB_OKCANCEL|MB_ICONSTOP);
}
---------------------------------------------------
原计算机名:2C316E1F03D049B
311.如何设置计算机名:
void CInfDlg::OnBnClickedButton3()
{
// TODO: 在此添加控件通知处理程序代码
CString strComputerName="mingwen";
if (::SetComputerName(strComputerName))
{
MessageBox("计算机名设置成功","信息提示",MB_OK);
}
}
---------------------------------------------------
如何获得CPU的制造商
void CMyDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
HKEY hKey;
LPCTSTR StrKey="HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0";
if (ERROR_SUCCESS==::RegOpenKeyEx(HKEY_LOCAL_MACHINE,StrKey,NULL,KEY_ALL_ACCESS,&hKey))
{
DWORD dwSize=255,dwType=REG_SZ;
char String[256];
LPCSTR KeyValue="VendorIdentifier";
if (ERROR_SUCCESS==::RegQueryValueEx(hKey,KeyValue,0,&dwType,(BYTE *)String,&dwSize))
{
CString StrData=String;
MessageBox("CPU的制造商为:"+StrData,"信息提示",MB_OK); //制造商的字符串StrData
}
::RegCloseKey(hKey);
}
}
-------------------------------------------------
CPU的标识为
void CMyDlg::OnBnClickedButton2()
{
// TODO: 在此添加控件通知处理程序代码
HKEY hKey;
LPCTSTR StrKey="HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0";
if (ERROR_SUCCESS==::RegOpenKeyEx(HKEY_LOCAL_MACHINE,StrKey,NULL,KEY_ALL_ACCESS,&hKey))
{
DWORD dwSize=255,dwType=REG_SZ;
char String[256];
LPCSTR KeyValue="Identifier";
if (ERROR_SUCCESS==::RegQueryValueEx(hKey,KeyValue,0,&dwType,(BYTE *)String,&dwSize))
{
CString StrData=String;
MessageBox("CPU的标识为:"+StrData,"信息提示",MB_OK);
}
::RegCloseKey(hKey);
}
}
------------------------------------------------------------------------
CPU的主频
inline unsigned _int64 theCycleCount(void)
{
_asm _emit 0x0F
_asm _emit 0x31
}
void CMyDlg::OnBnClickedButton3()
{
// TODO: 在此添加控件通知处理程序代码
unsigned _int64 start=theCycleCount();
Sleep(1000);
unsigned _int64 end=theCycleCount();
unsigned _int64 tick=(end-start)/1000000;
CString StrMHZ;
StrMHZ.Format("CPU的主频为:%ld MHz",tick);
MessageBox(StrMHZ,"信息提示",MB_OK);
}
----------------------------------------------
CPU 个数
void CMyDlg::OnBnClickedButton4()
{
// TODO: 在此添加控件通知处理程序代码
//声明硬件信息结构变量
SYSTEM_INFO siSysInfo;
//复制硬件信息到SYSTEM_INFO结构变量
GetSystemInfo(&siSysInfo);
//显示硬件信息
CString StrCPUNumber;
StrCPUNumber.Format("系统一共有 %u 个CPU", siSysInfo.dwNumberOfProcessors);
MessageBox(StrCPUNumber,"信息提示",MB_OK);
}
------------------------------------------------------------------
void CMyDlg::OnBnClickedButton5()
{
// TODO: 在此添加控件通知处理程序代码
if(IsProcessorFeaturePresent(PF_3DNOW_INSTRUCTIONS_AVAILABLE))
MessageBox("当前CPU支持3DNow技术","信息提示",MB_OK);
else
MessageBox("当前CPU不支持3DNow技术","信息提示",MB_OK);
}
----------------------------------------------------------
void CMyDlg::OnBnClickedButton5()
{
// TODO: 在此添加控件通知处理程序代码
if(IsProcessorFeaturePresent(PF_MMX_INSTRUCTIONS_AVAILABLE))
MessageBox("当前CPU支持MMX技术","信息提示",MB_OK);
else
MessageBox("当前CPU不支持MMX技术","信息提示",MB_OK);
}
---------------------------------------------------------------------------------
void CMyDlg::OnBnClickedButton5()
{
// TODO: 在此添加控件通知处理程序代码
if(::GetSystemMetrics(SM_SECURE))
MessageBox("提供安全特性","信息提示",MB_OK);
else
MessageBox("没有提供安全特性","信息提示",MB_OK);
}
---------------------------------------------------------------------------------
void CMyDlg::OnBnClickedButton5()
{
// TODO: 在此添加控件通知处理程序代码
if(::GetSystemMetrics(SM_SLOWMACHINE))
MessageBox("具有低档处理器","信息提示",MB_OK);
else
MessageBox("不具有低档处理器","信息提示",MB_OK);
}
----------------------------------------------------------------------------------------------
------------------------------------------------------------------------
390 如何读取位图资源显示位图
BOOL BitBlt( //函数介绍
int x, //目标矩形的左上角X坐标
int y, //目标矩形的左上角Y坐标
int nWidth, //目标矩形的宽度
int nHeight, //目标矩形的高度
CDC* pSrcDC, //源位图设备
int xSrc, //拷贝位图的左上角x坐标
int ySrc, //拷贝位图的左上角Y坐标
DWORD dwRop //光栅操作码
);
首先要导入位图资源 注意 IDB
在OnDraw()函数中加入如下代码
void CZhangPicWorkView::OnDraw(CDC *pDC)
{
CZhangPicWorkDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// TODO: 在此处为本机数据添加绘制代码
CBitmap Bmp;
Bmp.LoadBitmap(IDB_BITMAP1);
CDC memDC;
memDC.CreateCompatibleDC(pDC);
memDC.SelectObject(&Bmp);
pDC->BitBlt(0,0,1024,760,&memDC,0,0,SRCCOPY); //图像大小1024*760
}
-------------------------------------------------------
******自己拓展:*****
在MENU 中创建一个选项 定义ID
添加消息响应命令
void CZhangPicWorkView::OnShowbitmap()
{
// TODO: 在此添加命令处理程序代码
CDC *pDC=GetDC();
CBitmap Bmp;
Bmp.LoadBitmap(IDB_BITMAP1);
CDC memDC;
memDC.CreateCompatibleDC(pDC);
memDC.SelectObject(&Bmp);
pDC->BitBlt(0,0,1024,760,&memDC,0,0,SRCCOPY);
}
-----------------------------------------------------
图片处理,底片化处理(自己开发的)
void CImageWorkByZhangView::OnWriteandblack()
{
// TODO: 在此添加命令处理程序代码
CDC *pDC=GetDC(); //获得指针
for (int i=0;i<358;i++) //循环 图片的宽度358
{
for (int j=0;j<441;j++) //图片的高度441
{
COLORREF pixel=pDC->GetPixel(i,j); //获得改点的颜色
int r,g,b; //颜色
r=GetRValue(pixel); //提取各个颜色值
g=GetGValue(pixel);
b=GetBValue(pixel);
pDC->SetPixel(i,j,RGB(255-r,255-g,255-b)); //底片化处理核心
}
}
}
---------------------------------------------------------------------------
获取主机名 和 IP地址
添加头文件:
#include <afxsock.h>
void CmingwenDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
if (!AfxSocketInit()) //初始化socket
return;
char HostName[128];
CString StrIP;
CString StrInfo="主机名:";
//获得主机名
if( gethostname(HostName, 128) == 0 )
{
// 获得主机ip地址
struct hostent * pHost;
pHost = gethostbyname(HostName);
StrInfo+=HostName;
StrInfo+="\nIP地址:";
int j;
int h_length=4;
for( j = 0; j<h_length; j++ )
{
CString addr;
if( j > 0 )
StrIP += ".";
addr.Format("%u", (unsigned int)((unsigned char*)pHost->h_addr_list[0])[j]);
StrIP += addr;
}
StrInfo+=StrIP;
}
MessageBox(StrInfo,"信息提示",MB_OK);
}
---------------------------------------------------------
来源:python脚本自动迁移
VC 常用的更多相关文章
- VC++常用数据类型
原文地址:https://www.cnblogs.com/yincheng01/archive/2008/12/31/2213386.html 一. VC常用数据类型列表 二 ...
- VC++常用数据类型及其操作详解
原文地址:http://blog.csdn.net/ithomer/article/details/5019367 VC++常用数据类型及其操作详解 一.VC常用数据类型列表 二.常用数据类型转化 2 ...
- vc常用类总结(转载)
常用类 CRect:用来表示矩形的类,拥有四个成员变量:top left bottom right.分别表是左上角和右下角的坐标.可以通过以下的方法构造: CRect( int l, int t, i ...
- VC常用数据类型使用转换
我们先定义一些常见类型变量借以说明 int i = 100; long l = 2001; float f=300.2; double d=12345.119; char username[]=&qu ...
- VC常用小知识
(1) 如何通过代码获得应用程序主窗口的 指针?主窗口的 指针保存在CWinThread::m_pMainWnd中,调用AfxGetMainWnd实现.AfxGetMainWnd() ->Sho ...
- VC常用代码之创建进程
作者:朱金灿 来源:http://blog.csdn.net/clever101 创建进程是编程开发的常用操作.Windows中的创建进程采用API函数CreateProcess实现.下面是一个使用例 ...
- VC++常用数据类型转化
char* 转换成 LPCTSTR const char* dibFileName; , , dibFileName, -, NULL, ); wchar_t *wide = new wchar_t[ ...
- VC++常用函数
// 获取文件运行路径 void GetAppFilePath(const CString& strProjectName) { TCHAR szFileName[MAX_PATH]; HMO ...
- VC常用数据类型使用转换详解
一.其它数据类型转换为字符串 短整型(int)itoa(i,temp,10);///将i转换为字符串放入temp中,最后一个数字表示十进制itoa(i,temp,2); ///按二进制方式转换 长整型 ...
随机推荐
- CS5212 pin to pin 替代RTD2166|DP转VGA芯片|CS5212转换电路设计方法
CS5212适用于设计DP转VGA转换电路,主要用在嵌入式单片机基于工业机或者INTEL X86主板上面,也适用于多个电子配件市场和显示器应用程序,如笔记本电脑.主板.台式机.适配器.转换器和转接器. ...
- 市场上十块钱买一个随身WiFi使用技术手段,插卡流量不限速不限量?
全部章节 >>>> 文章目录 一.前言 二.进入安卓界面 1.进入网页控制台 2.先开启adb 3.CMD连接设备 4.对界面进行控制 三.刷入clnc脚本实现免流 1.ADB ...
- Linux常用命令,新手可以看看
最近在温习了一些linux的命令,这里总结一下,博主使用的系统是Ubuntu,版本如下: 由于博主是做开发的,所有linux只会一些常用的命令,跟那些专业linux大牛当前没的比,为什么Ubuntu而 ...
- 初识python 之 兔子生崽(小练习)
题目:有一对兔子,从出生后第三个月起每个月都生一对小兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子不死,每个月的兔子总数为多少?思路分析: 月份 兔子数 规律1 2 2**12 2 2**13 ...
- 微信小程序开发 --- 小白之路 --- 心得
1.前言 今天 ,发现我的饭卡不见了....悲催 ,看了一下学校的微信小程序,查了下我这饭卡的流水记录,嗯...最后出现的地方在洗澡房... 好吧,扯远了,虽然没找到,可是突发奇想 ,小程序挺方便的, ...
- Go语言系列之标准库fmt
fmt包实现了类似C语言printf和scanf的格式化I/O.主要分为向外输出内容和获取输入内容两大部分. 向外输出 标准库fmt提供了以下几种输出相关函数. Print Print系列函数会将内容 ...
- HTML5元素
1.1结构元素 HTML5定义了一组新的语义化标签,目前主流浏览器均已支持,语义化标签使用标记元素的内容,虽然可以使用原有标签替换,但是它可以简化HTML页面设计,并且也为搜索引擎在抓取和索引网页的时 ...
- BeanUtils.copyProperties 选择性赋值字段
BeanUtils.copyProperties 在字段赋值上有强大的功能,如果有两个的类,如果需要将相同的字段赋值,就可以直接赋制.而不需要每个字段都需要一个一个赋制. BeanUtils.copy ...
- 曼孚科技:“四管齐下”筑牢AI数据隐私安全防线
谈及数据,绕不开的一个话题就是数据隐私与数据安全.随着数字化进程加快,数据安全事件频发,据Risk Based Security统计,去年国际数据泄露事件近5000起,被泄露数据近41亿条,数据造成的 ...
- 《剑指offer》面试题56 - I. 数组中数字出现的次数
问题描述 一个整型数组 nums 里除两个数字之外,其他数字都出现了两次.请写程序找出这两个只出现一次的数字.要求时间复杂度是O(n),空间复杂度是O(1). 示例 1: 输入:nums = [4,1 ...