C++基于对话框的程序的框架实例

本文实例讲述了C++基于对话框的程序的框架。分享给大家供大家参考。具体如下:

resource.cpp源文件如下:

代码如下:

#include "resource.h" 
 
CMyApp theApp; 
 
BOOL CMyApp::InitInstance() 

    CMainDialog dlg; 
    m_pMainWnd = &dlg;   //给m_pMainWnd 主窗口 
    dlg.DoModal(); 
    return FALSE; //不进入消息循环 

 
 
BEGIN_MESSAGE_MAP(CMainDialog, CDialog) 
ON_BN_CLICKED(IDC_STOP, OnStop) 
ON_MESSAGE(WM_CUTTERSTART, OnCutterStart) //自定义消息 
END_MESSAGE_MAP() 
//CMainDialog 
CMainDialog::CMainDialog(CWnd* pParentWnd):CDialog(IDD_MAIN, pParentWnd) 

 

BOOL CMainDialog::OnInitDialog( ) 

    CDialog::OnInitDialog(); 
    return TRUE; 

void CMainDialog::OnStop() 

    MessageBox("OnStop"); 

long CMainDialog::OnCutterStart(WPARAM wParam, LPARAM lParam)   //处理自定义消息 

    MessageBox("OnCutterStart"); 
    return 0; 
}

resource.h头文件如下:

代码如下:

#include <afxwin.h> 
#define  WM_CUTTERSTART WM_USER+100 
//CMyApp 
class CMyApp:public CWinApp 

public: 
    BOOL InitInstance(); 
}; 
 
//CMyDialog 
class CMainDialog:public CDialog 

public: 
    CMainDialog(CWnd* pParentWnd = NULL); 
 
protected: 
    virtual BOOL OnInitDialog( ); 
    afx_msg void OnStop(); 
    afx_msg long OnCutterStart(WPARAM wParam, LPARAM lParam);  //处理自定义消息的声明 
 
    DECLARE_MESSAGE_MAP() 
};

希望本文所述对大家的C++程序设计有所帮助。

(0)

相关推荐

  • c#.net全站防止SQL注入类的代码

    复制代码 代码如下: using System;using System.Collections.Generic;using System.Linq;using System.Web; /// <summary>/// 防SQL注入检查器/// </summary>public class SqlChecker{    //当前请求对象    private HttpRequest request;    //当前响应对象    private HttpResponse respo

  • C++获取当前进程IAT的方法

    本文实例讲述了C++获取当前进程IAT的方法,分享给大家供大家参考. 具体实现方法如下: 复制代码 代码如下: #include <windows.h> #include <stdio.h> int main(int argc, char* argv[]) {  HMODULE hModule = ::GetModuleHandleA(NULL);  IMAGE_DOS_HEADER* pDosHeader = (IMAGE_DOS_HEADER*)hModule;  IMAGE_

  • C++封装线程类的实现方法

    本文实例讲述了C++封装线程类的实现方法.分享给大家供大家参考.具体方法如下: 复制代码 代码如下: // 给主窗口的通知消息  #define WM_CUTTERSTART WM_USER + 100    // wParam == xxx  lParam==xxxx    /*  外面调用这个类时,只需要IsRunning() Startxxx(xxx) Suspendxxx()   Resumexxx() Stopxxx()  */    /*  m_bContinue在真正的工作代码Do

  • C++封装IATHOOK类实例

    本文实例讲述了C++封装IATHOOK类的实现方法.分享给大家供大家参考.具体方法如下: 1. 定义成类的静态成员,从而实现自动调用 复制代码 代码如下: static CAPIHOOK sm_LoadLibraryA;  static CAPIHOOK sm_LoadLibraryW;  static CAPIHOOK sm_LoadLibraryExA;  static CAPIHOOK sm_LoadLibraryExW;  static CAPIHOOK sm_GetProcAddres

  • C#防SQL注入代码的三种方法

    对于网站的安全性,是每个网站开发者和运营者最关心的问题.网站一旦出现漏洞,那势必将造成很大的损失.为了提高网站的安全性,首先网站要防注入,最重要的是服务器的安全设施要做到位. 下面说下网站防注入的几点要素. 一:丢弃SQL语句直接拼接,虽然这个写起来很快很方便. 二:如果用SQL语句,那就使用参数化,添加Param 三:尽可能的使用存储过程,安全性能高而且处理速度也快 四:屏蔽SQL,javascript等注入(很是主要的),对于每个文件写是不太可能的.所以要找到对所有文件起作用的办法.我在网上

  • C++基于hook iat改变Messagebox实例

    本文实例讲述了C++基于hook iat改变Messagebox的方法,分享给大家供大家参考.具体方法如下: 步骤: 1. 定义原始函数类型的写法 复制代码 代码如下: //定义函数原型  typedef int (WINAPI *PFNMESSAGEBOX)(HWND hWnd,  LPCTSTR lpText,  LPCTSTR lpCaption,  UINT uType);  //保存原始的MessageBox地址,注意这里  PROC g_orgProc = (PROC)Message

  • C#使用带like的sql语句时防sql注入的方法

    本文实例叙述了在拼接sql语句的时候,如果遇到Like的情况该怎么办. 一般采用带like的SQL语句进行简单的拼接字符串时,需要开率遇到sql注入的情况.这确实是个需要注意的问题. 这里结合一些查阅的资料做了初步的整理. 如这样一个sql语句: select * from game where gamename like '%张三%' 用c#表示的话: string keywords = "张三"; StringBuilder strSql=new StringBuilder();

  • C++针对bmp格式解析实例

    本文实例讲述了C++针对bmp格式解析的方法,分享给大家供大家参考.具体方法如下: 写这代码时,容易出现如下错误: 1. 忘了on_wm_paint()  一直在界面上画不出来 2. 正确写法 复制代码 代码如下: BYTE* pBits = (BYTE*)lpBase + pbitmapFileHeader->bfOffBits; 写成了 复制代码 代码如下: BYTE* pBits =  pbitmapFileHeader->bfOffBits; 这里主要是用了前面一篇中的CWnd框架.

  • C++键盘记录程序代码

    本文实例讲述了C++键盘记录程序.分享给大家供大家参考.具体分析如下: 主程序如下: 就是基于对话框的框架,加个个OnHookKey函数, 复制代码 代码如下: long CMainDialog::OnHookKey(WPARAM wParam, LPARAM lParam)   //处理自定义消息  {      char szKey[80]={0};      GetKeyNameText(lParam, szKey, 80);      CString strItem;      strI

  • C++进程间共享数据实例

    本文实例讲述了C++进程间共享数据的实现方法,分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: int main(int argc, char *argv[])  {      //RecursiveDelete("C:\\20_128\\");      //SelfRun("runModel");      //进程间内存共享      LPCTSTR lpName= "hello";      LPCTSTR lpConten

  • Visual C++中Tab View的多种实现方法

    本文实例讲述了Visual C++中Tab View的多种实现方法,分享给大家供大家参考.具体如下: 一.引言 标签控件(Tab Control)是VC++编程中经常使用的控件之一,它允许在单个对话框或窗口中设置多个页面,每个页面代表一组控件.当某个页面的标签被选中时,该页 面内的控件就会被显示出来.标签控件使得在有限的窗口空间内可以显示更多的信息,而且分类清晰.同时,VC++提供了以文档/视图 (Document/View)结构方式开发应用程序的简单方法,在文档中保存数据,在视图中显示数据.无

  • C++封装远程注入类CreateRemoteThreadEx实例

    本文实例讲述了C++封装远程注入类CreateRemoteThreadEx的方法,分享给大家供大家参考.具体方法如下: 首先,类初始化时传入要注入的DLL文件名 只使用两个函数 复制代码 代码如下: // 注入DLL到指定的地址空间 BOOL InjectModuleInto(DWORD dwProcessId); // 从指定的地址空间卸载DLL BOOL EjectModuleFrom(DWORD dwProcessId); .h头文件如下: 复制代码 代码如下: #pragma once 

  • C++进程共享数据封装成类实例

    本文实例讲述了C++进程共享数据封装成类的方法,分享给大家供大家参考.具体方法如下: ShareMemory.cpp源文件如下: 复制代码 代码如下: #include "ShareMemory.h"    CShareMemory::CShareMemory(const    char* pszMapName, int nFileSize, BOOL bServer):m_hFileMap(NULL),m_pBuffer(NULL)  {      if (bServer) //是服

随机推荐