/
// PredefineClass.h文件

#define IDC_BUTTON 10 // Button按钮
#define IDC_RADIO 11 // 单选框
#define IDC_CHECKBOX 12 // 复选框
#define IDC_STATIC 13 // 静态文本
#define IDC_EDITTEXT 14 // 文本框

#include "afxwin.h"

class CMyApp : public CWinApp
{
public:
virtual BOOL InitInstance();
};

class CMainWindow : public CWnd
{
public:
CMainWindow();
protected:
virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam);
virtual void PostNcDestroy();
afx_msg BOOL OnCreate(LPCREATESTRUCT);
DECLARE_MESSAGE_MAP()

};

CPP文件

// PredefineClass.cpp

#include "PredefineClass.h"

CMyApp theApp;

///

BOOL CMyApp::InitInstance()
{
m_pMainWnd = new CMainWindow;
m_pMainWnd->ShowWindow(m_nCmdShow);
return TRUE;
}

CMainWindow::CMainWindow()
{
LPCTSTR lpszClassName = AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW, 
::LoadCursor(NULL, IDC_ARROW), (HBRUSH)(COLOR_3DFACE+1));

CreateEx(WS_EX_CLIENTEDGE, lpszClassName, 
"框架程序创建的窗口", WS_OVERLAPPEDWINDOW, 
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL);
}

BEGIN_MESSAGE_MAP(CMainWindow, CWnd)
ON_WM_CREATE()
END_MESSAGE_MAP()

void CMainWindow::PostNcDestroy()
{
delete this;
}

BOOL CMainWindow::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
// 创建三个不同风格的按钮
::CreateWindowEx(0, "button", "push button", WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,
50, 30, 110, 30, m_hWnd, (HMENU)IDC_BUTTON, AfxGetApp()->m_hInstance, NULL);
::CreateWindowEx(0, "button", "radio button", WS_CHILD|WS_VISIBLE|BS_RADIOBUTTON,
50, 70, 110, 30, m_hWnd, (HMENU)IDC_RADIO, AfxGetApp()->m_hInstance, NULL);
::CreateWindowEx(0, "button", "check box", WS_CHILD|WS_VISIBLE|BS_AUTOCHECKBOX,
50, 110, 110, 30, m_hWnd, (HMENU)IDC_CHECKBOX, AfxGetApp()->m_hInstance, NULL);

// 创建静态文本
::CreateWindowEx(0, "static", "static text", WS_CHILD|WS_VISIBLE|SS_SUNKEN,
50, 150, 150, 60, m_hWnd, (HMENU)IDC_STATIC, AfxGetApp()->m_hInstance, NULL);

// 创建文本框
::CreateWindowEx(0, "edit", "edit text", WS_CHILD|WS_VISIBLE|WS_BORDER|ES_MULTILINE,
50, 220, 150, 60, m_hWnd, (HMENU)IDC_EDITTEXT, AfxGetApp()->m_hInstance, NULL);

return TRUE;
}

BOOL CMainWindow::OnCommand(WPARAM wParam, LPARAM lParam)
{
switch(LOWORD(wParam))
{
case IDC_BUTTON:
::MessageBox(m_hWnd, "大家好!", "Button", MB_OK);
break;

case IDC_RADIO:
{
// 是否选中单选按钮
BOOL bChecked = ::IsDlgButtonChecked(m_hWnd, IDC_RADIO);
// 设置上面的button有效状态
::EnableWindow(::GetDlgItem(m_hWnd, IDC_BUTTON), bChecked);
// 设置本控件状态
::CheckDlgButton(m_hWnd, IDC_RADIO, !bChecked);
}
break;

case IDC_EDITTEXT:
{
// 如果是改变文本框中的文本,则在静态文本框中也做相应的修改
if(HIWORD(wParam) == EN_CHANGE)
{
char sz[256];
::GetWindowText(::GetDlgItem(m_hWnd, IDC_EDITTEXT), sz, 256);
::SetWindowText(::GetDlgItem(m_hWnd, IDC_STATIC), sz);
}
}
break;
}

return 0;
}


第七章 控件 windows程序设计王艳平版相关推荐

  1. 第七章 目录监视 windows程序设计王艳平版

    // DirDialog.h文件 #ifndef __DIRDIALOG_H_ #define __DIRDIALOG_H_ #include <shlobj.h> class CDirD ...

  2. 第七章 对话框1 windows程序设计 王艳平版

    / // FirstDialog.cpp文件 #include <windows.h> #include "resource.h" BOOL __stdcall Dlg ...

  3. 第三章 线程局部存储 windows程序设计 王艳平版

    /// // 02UseTLS.cpp.cpp文件 /* 动态调TLS的典型步聚: 1,主线程调用TlsAlloc函数为线程局部存储分配索引 DWORD TlsAlloc(void) 返回一个TLS索 ...

  4. 第九章 DLL文件 windows程序设计 王艳平版

    // 09DllDemo.h文件 #ifdef MY09DLLDEMO_EXPORTS #define MY09DLLDEMO_API __declspec(dllexport) #else #def ...

  5. 子窗口控件 -windows程序设计(网易小海星的博客)

    取父窗口的窗口句柄: hwndParent = GetParent (hwnd) ; 发送消息: SendMessage (hwndParent, message, wParam, lParam) ; ...

  6. 第三章 windows程序设计 王艳平版

    /// // CountErr.cpp文件 #include <stdio.h> #include <windows.h>  #include <process.h> ...

  7. 第三章 同步 Windows程序设计 王艳平版

    /// // CriticalSection.cpp文件 #include <stdio.h> #include <windows.h> #include <proces ...

  8. 第三章 事件 windows程序设计 王艳平版

    /// // EventDemo.cpp文件 #include <stdio.h> #include <windows.h> #include <process.h> ...

  9. 第四章 绘图 windows程序设计 王艳平版

    /// // SineWave.cpp文件 #include <windows.h> #include <math.h> LRESULT __stdcall WndProc(H ...

最新文章

  1. Matlab与数据结构 -- 对矩阵的排序
  2. C++中的const成员函数介绍
  3. python爬虫文件代码大全-Python网络爬虫实战项目代码大全(长期更新,欢迎补充)...
  4. ***PHP 遍历数组的方法foreach
  5. 2016年DDoS攻击趋势分析报告
  6. centos7 apache2.4 测试
  7. BZOJ3239 Discrete Logging
  8. mysql 出现错误 Duplicate entry for key PRIMARY 解决办法
  9. IIC原理及简单流程
  10. oracle ob 使用基础之基础
  11. 源代码可以从应用提取码_大规模下加速源代码分析
  12. java 微服务源码_Redkale 1.9.4 Java 分布式微服务框架
  13. 动态内存分配(malloc函数)
  14. “office for mac”模板文件的目录
  15. 联想计算机拆机,一拆到底~联想昭阳E46L彻底拆解,163P!
  16. 360°视频论文调研
  17. jpg怎么转换成pdf文档
  18. 上线切换 - 如何导入在制品
  19. 理解CU微操作命令(控制信号)
  20. 粒子滤波 PF(Particle filter)算法

热门文章

  1. PX4中文维基——光流部分
  2. android 声音池,Android使用SoundPool实现播放音效
  3. Java处理带小数的数字
  4. 转:DirectX8.0初体验, 有点老,但写的挺好
  5. 计算机考博哪个学校好考,各位考博人士看过来,考博最容易的学校汇总
  6. 3dmax:3dmax动画栏之关键帧动画经典案例(弹跳小球、实活力小球(上升慢下降快)、小球跳墙、跳动越来越低的小球实例、空间跳动的小球、球跳阶梯)之详细攻略
  7. html5 xdwlnjs cn,XDW,丝印Marking-电子元件丝印查询
  8. apm 韩国开源项目_韩国的开源状态
  9. 【转】U盘病毒autorun.inf的原理及查杀经验
  10. 【DTCC2016】平安科技汪洋畅谈与数据库的不解之缘