转载请注明来源: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 常用的更多相关文章

  1. VC++常用数据类型

    原文地址:https://www.cnblogs.com/yincheng01/archive/2008/12/31/2213386.html 一.              VC常用数据类型列表 二 ...

  2. VC++常用数据类型及其操作详解

    原文地址:http://blog.csdn.net/ithomer/article/details/5019367 VC++常用数据类型及其操作详解 一.VC常用数据类型列表 二.常用数据类型转化 2 ...

  3. vc常用类总结(转载)

    常用类 CRect:用来表示矩形的类,拥有四个成员变量:top left bottom right.分别表是左上角和右下角的坐标.可以通过以下的方法构造: CRect( int l, int t, i ...

  4. VC常用数据类型使用转换

    我们先定义一些常见类型变量借以说明 int i = 100; long l = 2001; float f=300.2; double d=12345.119; char username[]=&qu ...

  5. VC常用小知识

    (1) 如何通过代码获得应用程序主窗口的 指针?主窗口的 指针保存在CWinThread::m_pMainWnd中,调用AfxGetMainWnd实现.AfxGetMainWnd() ->Sho ...

  6. VC常用代码之创建进程

    作者:朱金灿 来源:http://blog.csdn.net/clever101 创建进程是编程开发的常用操作.Windows中的创建进程采用API函数CreateProcess实现.下面是一个使用例 ...

  7. VC++常用数据类型转化

    char* 转换成 LPCTSTR const char* dibFileName; , , dibFileName, -, NULL, ); wchar_t *wide = new wchar_t[ ...

  8. VC++常用函数

    // 获取文件运行路径 void GetAppFilePath(const CString& strProjectName) { TCHAR szFileName[MAX_PATH]; HMO ...

  9. VC常用数据类型使用转换详解

    一.其它数据类型转换为字符串 短整型(int)itoa(i,temp,10);///将i转换为字符串放入temp中,最后一个数字表示十进制itoa(i,temp,2); ///按二进制方式转换 长整型 ...

随机推荐

  1. Java面向对象笔记 • 【第7章 集合】

    全部章节   >>>> 本章目录 7.1 集合概述 7.1.1 Java集合体系概述 7.1.2 实践练习 7.2 List集合 7.2.1 ArrayList实现类 7.2. ...

  2. docker学习:dockefile解析

    是什么 DockerFile 是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本 构建三部曲 编写Dockerfile文件 docker build docker run 文件什么样 ...

  3. 我踩过的python的坑

    1. string中Template用法 变量名不能是${tradeDate+1}, python无法识别其为变量,应改为 ${tradeDate1} 变量替换的语句:data_new = Templ ...

  4. 初识python:多线程

    多线程:在一个程序中,独立运行的程序片断叫作"线程"(Thread),利用它编程的概念就叫作"多线程处理".即:一个进程中,多个线程. 举个例说明:就像是一列火 ...

  5. js 调用同级的 iframe 方法

    有两个 iframe <iframe id="a"> <script> function food(a){ return a+1; } </scrip ...

  6. spring cloud --- Feign --- 心得

    spring boot      1.5.9.RELEASE spring cloud    Dalston.SR1 1.前言 什么是Feign? 为了简化我们的开发,Spring Cloud Fei ...

  7. Linux下配置GitHub

    一.注册GitHub账号 二.在linux命令行输入 git config --global user.name "YOUR NAME" #配置github账号 git confi ...

  8. Linux上天之路系列目录

    Linux上天之路系列目录 Linux上天之路(一)之Linux前世今生 Linux上天之路(二)之Linux安装 Linux上天之路(三)之Linux系统目录 Linux上天之路(四)之Linux界 ...

  9. java关于for循环的效率优化

    我们知道在实现一个功能的时候是可以使用不同的代码来实现的,那么相应的不同实现方法的性能肯定也是有差别的,所以我们在写一些对性能很敏感的模块的时候,对代码进行优化是很必要的,所以我们说一下for循环(w ...

  10. Web开发之HTTP协议

    HTTP响应消息 一个HTTP响应代表服务器向客户端回送的数据. 一个完整的HTTP响应包括如下内容: 一个状态行.若干消息头.以及响应正文,其中的一些消息头和正文都是可选的,消息头和正文内容之间要用 ...