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脚本自动迁移

posted @ 2020-06-29 09:39  jiangcheng_15  阅读(160)  评论(0编辑  收藏  举报