MFC一些宏消息以及一些控件操作

 

//win入口函数
int WINAPI WinMain(HINSTANCE hinstance,
                   HINSTANCE hprevinstance,
                   LPSTR lpcmdline,
                   int ncmdshow)
===============================================================================================
//win快捷消息框类型
MB_OK :信息框含有1个按钮-(确定)
MB_OKCANCEL : 信息框含有2个按钮-(确定和取消)
MB_RETRYCANCEL : 信息框含有2个按钮-(重试和取消)
MB_YESNO : 信息框含有2个按钮-(是和否)
MB_YESNOCANCEL : 信息框含有3个按钮-(是,否,取消)
MB_ABORTRETRYIGNORE : 信息框含有3个按钮-(终止,重试,忽略)
===============================================================================================
//win快捷消息框内图标
MB_ICONEXCLAMATION : 信息框显示以个黄色三角形中间带惊叹号
MB_ICONINFORMATION : 信息框显示以个灰白色云框中间惊叹号:
MB_ICONQUESTION : 信息框显示以个灰白色云框中间问号:
MB_ICONSTOP : 信息框显示以个红色圆圈中间叉号:
===============================================================================================
//声音文件相关
必须包含winmm.lib;
调用方法:PlaySound(MAKEINTRESOURCE(IDR_WAVE2),hinstance_app,SND_ASYNC|SND_RESOURCE);

SND_SYNC :声音播放完后返回
SND_ASYNC :声音开始播放后 立即返回
SND_LOOP :声音重复播放直到再次调用Playsound() 需要和SND_ASYNC 搭配 SND_LOOP|SND_ASYNC;
===============================================================================================
//BS组件
BS_DEFPUSHBUTTON //突出按钮
BS_AUTORADIOBUTTON //带选框的按钮
//按钮显示
button1.Create("剑客",BS_DEFPUSHBUTTON|WS_VISIBLE|WS_CHILD,CRect(0,0,100,100),this,123);

、、、、、、、、动态显示按钮
if(!button1.m_hWnd){
  button1.Create("剑客",BS_DEFPUSHBUTTON|WS_VISIBLE|WS_CHILD,CRect(0,0,100,100),this,123);
 }
 else{
  button1.DestroyWindow();
 }
===============================================================================================
//win快捷消息框返回参数
IDABORT
IDCANCEL
INIGNORE
IDNO :否
IDYES :是
IDOK :确定
IDRETRY
===============================================================================================
//窗口左上角图标
IDI_ERROR :红色叉号
IDI_WINLOGO :正常程序图标
IDI_ASTERISK :以个灰白色云框中间惊叹号:
IDI_WARNING :以个黄色三角形中间带惊叹号
IDI_QUESTION :以个灰白色云框中间问号
===============================================================================================
//鼠标指针形状
IDC_APPSTARTING :程序开始运行光标
IDC_ARROW :正常状态光标
IDC_CROSS :十字架光标
IDC_HELP :带问号的光标
IDC_IBEAM :等待输入字符的光标
IDC_ICON :等待中的光标
IDC_NO : 不可以点击的光标
IDC_SIZE :上下拖拉的光标
IDC_SIZEALL :菱型光标
IDC_SIZENESW :斜拉光标
IDC_UPARROW :向上箭头的光标
IDC_SIZEWE :左右拖拉的光标
===============================================================================================
//画刷参数
BLACK_BRUSH :黑色画刷
DKGRAY_BRUSH :深灰色画刷
GRAY_BRUSH :灰白色画刷
HOLLOW_BRUSH :空洞的画刷
LTGRAY_BRUSH :亮色画刷
WHITE_BRUSH :白色的画刷
===============================================================================================
//WIN类的类型标志style
CS_HREDRAW : 如果移动或改变了窗口的宽度,则刷新整个窗口
CS_VREDRAW : 如果移动或改变了窗口的高度,则刷新整个窗口
CS_SAVEBITS : 在窗口中保存图像 以便不必每次刷新屏幕 暂用大量内存
CS_NOCLOSE : 禁止关闭窗口
===============================================================================================
#include<stdio.h>

.hbrBackground=(HBRUSH)GetStockObject(DKGRAY_BRUSH);  :画刷颜色 //强制转换 类似JAVA
===============================================================================================
typedef struct _WNDCLASS {//窗口类
 UINT style; //窗口风格:CS_NOCLOSE(不可以关闭)CS_HREDRAW|CS_VREDRAW
 WNDPROC lpfnWndProc; //回调函数
 int cbClsExtra; //通常为0
 int cbWndExtra; //通常为0
 HANDLE hInstance; //WinMain的实例号 
 HICON hIcon; //窗口左上角图标
 HCURSOR hCursor; //鼠标指针形状
 HBRUSH hbrBackground; //画刷句柄
 LPCTSTR lpszMenuName; //设置菜单NULL
 LPCTSTR lpszClassName; //这个窗口的类名
} WNDCLASS ; 
===============================================================================================
//消息事件说明
WM_CLOSE :当窗口关闭时
WM_CREATE :当窗口第一次创建时
WM_DESTROY :当窗口可能被破坏时
WM_MOVE : 当窗口移动时
WM_MOUSEMOVE :当移动鼠标时
WM_KEYUP :当松开一个键时
WM_KEYDOWN :当按下一个键时
WM_TIMER :当发生定时程序事件时
WM_PAINT :当窗口重画时
WM_QUIT :当窗口结束时
WM_SIZE :当改变窗口大小时
WM_RBUTTONDOWN :鼠标右键点击
WM_LBUTTONDOWN :鼠标左键点击
===============================================================================================
//dwStyle窗口类型参数
WS_OVERLAPPEDWINDOW :正常的窗口
WS_BORDER : 有细线边界 仅有一个标题栏 不可以改变大小的窗口
WS_TABSTOP :仅有一个标题栏 可以双击标题栏最大化最小化的窗口
WS_SIZEBOX :仅有一个标题栏 可以改变大小可以最大最小化的窗口
WS_HSCROLL : 带有水平滚动条的窗口
WS_VSCROLL : 带有垂直滚动条的窗口
WS_MAXIMIZE : 开始就最大化的窗口
WS_VISIBLE : 开始就可见的窗口
===============================================================================================
//ShowWindow 参数说明
SW_SHOWNORMAL :常用正常显示
SW_SHOW :按当前尺寸位置显示
SW_HIDE :隐藏一个窗口 并激活另一个窗口
SW_SHOWMAXIMIZED :窗口最大化显示
SW_SHOWMINIMIZED :最小化显示

===============================================================================================
HWND CreateWindow(       //相关参数说明  
    LPCTSTR lpClassName, //窗口类名
    LPCTSTR lpWindowName, //窗口标题栏
    DWORD dwStyle,        //窗口的类型
    int x,                //窗口X轴距离 可指定为缺省的CW_USEDEFAULT
    int y,                //窗口Y轴距离 可指定为缺省的CW_USEDEFAULT
    int nWidth,           //窗口宽度 可指定为缺省的CW_USEDEFAULT
    int nHeight,          //窗口高度 可指定为缺省的CW_USEDEFAULT
    HWND hWndParent,      //父窗口的句柄
    HMENU hMenu,          //菜单句柄
    HINSTANCE hInstance,  //WinMain的实例号 
    LPVOID lpParam //多文档用 NULL
);

===============================================================================================
//消息框字符串调用方法

CString jk;
 jk.Format("1+1=%d",1+1);
 MessageBox(jk);


===============================================================================================

RegisterClass(&wndcls);

 MSG msg;
 while(GetMessage(&msg,NULL,0,0))
 {
  TranslateMessage(&msg);
  DispatchMessage(&msg);
 }

MessageBox(hwnd,"是否真的结束?","weixin",MB_YESNO))


===============================================================================================
//窗口绘图

  HDC hDC;
  PAINTSTRUCT ps;
  hDC=BeginPaint(hwnd,&ps);
  TextOut(hDC,0,0,"窗口东西",strlen("窗口东西"));
  EndPaint(hwnd,&ps);

===============================================================================================
//窗口关闭

return DefWindowProc(hwnd,uMsg,wParam,lParam);


===============================================================================================
Menu函数说明


ClientToScreen(&point);

===============================================================================================
组件字符串变换

CString str;
if(GetDlgItemText(IDC_BUTTON2,str),str=="变化前")
{
SetDlgItemText(IDC_BUTTON2,"变换后")
}
else{
SetDlgItemText(IDC_BUTTON2,"变化前");
}

================================================================================================================================
//收缩于扩展

static CRect rectLarge;
 static CRect rectSmall;
 
 if(rectLarge.IsRectNull())
 {
  CRect rectSeparator;
  GetWindowRect(&rectLarge);
  GetDlgItem(“分割线”)->GetWindowRect(&rectSeparator);

  rectSmall.left=rectLarge.left;
  rectSmall.top=rectLarge.top;
  rectSmall.right=rectLarge.right;
  rectSmall.bottom=rectSeparator.bottom;
 }
 if(str=="分割按钮")
 {
  SetWindowPos(NULL,0,0,rectSmall.Width(),rectSmall.Height(),
   SWP_NOMOVE | SWP_NOZORDER);
 }
 else
 {
  SetWindowPos(NULL,0,0,rectLarge.Width(),rectLarge.Height(),
   SWP_NOMOVE | SWP_NOZORDER);
 }
================================================================================================================================

cs.cx=500;
 cs.cy=500;
 cs.style=WS_OVERLAPPEDWINDOW;
 cs.lpszName="
http://www.sunxin.org";
================================================================================================================================
//打开网址
  char szHttp[80];
  strcpy(szHttp,"
WWW.163.com");
  ShellExecute(NULL,"open",szHttp,NULL,NULL,SW_SHOWNORMAL);
================================================================================================================================
//运行EMAIL
char szMailAddress[80];
 strcpy(szMailAddress,"
mailto:[email protected]");
 ShellExecute(NULL,"open",szMailAddress,NULL,NULL,SW_SHOWNORMAL);
================================================================================================================================
//运行其它程序
ShellExecute(this->m_hWnd, "open", "J:\\C++\\自编小程序\\文本游戏账号注册
\\Study3.exe", NULL, NULL, SW_MAXIMIZE) ;
================================================================================================================================
3、打开/关闭CD-ROM
(1)在stdafx.h文件中加上:
   include <mmsystem.h>
(2) project->settings
   Link页 Category: input 中的 Object/library modules: 
   加上winmm.lib
(3)按钮事件中加入以下代码:
   mciSendString("Set cdAudio door open wait",NULL,0,NULL);//打开
   mciSendString("Set cdAudio door closed wait",NULL,0,NULL);关闭

================================================================================================================================
对话框相关联
模态
TestDlg dlg;
dlg.DoModal();


非模态
TestDlg *pdlg=new TestDlg();
pdlg->Create(IDD_DIALOG1,this);
pdlg->ShowWindow(SW_SHOW);
================================================================================================================================
动态改变静态文本
CString nn1;
 if(GetDlgItem(IDC_STATIC1)->GetWindowText(nn1),nn1=="NN1"){
  GetDlgItem(IDC_STATIC1)->SetWindowText("HAHA");

 }
 else{
  GetDlgItem(IDC_STATIC1)->SetWindowText("NN1");

 }
================================================================================================================================
控件操作
        int num1,num2,num3;
 char ch1[10],ch2[10],ch3[10];
 GetDlgItemText(IDC_EDIT1,ch1,10);
 GetDlgItemText(IDC_EDIT2,ch2,10);
 num1=atoi(ch1);
 num2=atoi(ch2);
 num3=num1+num2;
 itoa(num3,ch3,10);
 SetDlgItemText(IDC_EDIT3,ch3);
================================================================================================================================
时间显示
SetTimer(1, 1000, NULL);

static CString strTemp;
COleDateTime dtTime;

dtTime = COleDateTime::GetCurrentTime();
strTemp.Format("现在时间 %02i:%02i:%02i ",dtTime.GetHour(),dtTime.GetMinute(),dtTime.GetSecond());
GetDlgItem(IDC_CURTIME)->SetWindowText(strTemp);

你可能感兴趣的:(MFC一些宏消息以及一些控件操作)