VC/MFC非模态对话框实例

MFC创建非模态对话框 非模态对话框弹出后,程序可以在不关闭该对话框的情况下继续执行,在转入到应用程序其他部分的代码时可以不需要用户做出响应。在主框架类的头文件添加文件包含:#include ”DialogModalless.h”当选择“查看”菜单中的“非模态对话框”菜单项时,弹出左面的对话框。选择左边树控件中的某个班级,在右边的列表控件显示该班级的学生。3.实现对话框的功能:添加控件关联变量 添加消息响应函数。2. 在构造函数中初始化: m_pModallessDlg=NULL;4. 添加菜单消息响应函数,显示对话框。 阅读详情
以下实例是基于对话框的工程,实现两个按钮分别控制两个非模态对话框,且保证每个非模态对话框只存在一个实例。

1、新建一个基于对话框(Dialog Based)工程,名称为Demo

2、在主窗口上添加2个按钮并设置其属性

    Button1的ID:IDC_Btn1          caption:按钮一
    Button2的ID:IDC_Btn2          caption:按钮二

3、再添加2个对话框,分别修改它们的ID和Caption属性

    IDD_DIALOG1的ID:IDD_Dlg1             Caption:窗口一
    IDD_DIALOG2的ID:IDD_Dlg2             Caption:窗口二   

4、为新建的2个对话框新建类,类名分别为CDlg1、CDlg2

5、在DemoDlg.h头文件中定义非模态对话框指针,定义为公共类型

public:
      CDemoDlg(CWnd* pParent = NULL); // standard constructor
      CDlg1 *pdlg1; //定义非模态对话框指针
      CDlg2 *pdlg2; //定义非模态对话框指针


 

    记得在顶部添加头文件

    #include "Dlg1.h"
    #include "Dlg2.h"

6、打开DemoDlg.cpp文件找到 BOOL CDemoDlg::OnInitDialog()对话框初始化并在其后面初始化刚定义的非模态对话框指针,代码如下:   

SetIcon(m_hIcon, TRUE);   // Set big icon
     SetIcon(m_hIcon, FALSE);  // Set small icon
 
     // TODO: Add extra initialization here
     pdlg1=NULL;//指针初始化
     pdlg2=NULL;//指针初始化

     return TRUE;  // return TRUE  unless you set the focus to a control


 

7、双击主界面上的“按钮一”写事件代码

void CDemoDlg::OnBtn1()
{
  // TODO: Add your control notification handler code here
  if(pdlg1==NULL)
  {
    pdlg1=new CDlg1;  //实例化非模态对话框指针
    pdlg1->Create(IDD_Dlg1,GetDesktopWindow());//把GetDesktopWindow() 改成this创建的对话框就不在任务栏中显示了
  }
  else
  {
    pdlg1->BringWindowToTop(); //对话框置前
  }

  pdlg1->ShowWindow(SW_SHOW); //显示非模态对话框
  pdlg1->UpdateWindow(); //更新非模态对话框中的各个控件
}

void CDemoDlg::OnBtn2()
{
  // TODO: Add your control notification handler code here
  if(pdlg2==NULL)
  {
    pdlg2=new CDlg2;  //实例化非模态对话框指针
    pdlg2->Create(IDD_Dlg2,GetDesktopWindow());//把GetDesktopWindow() 改成this创建的对话框就不在任务栏中显示了
  }
  else
  {
    pdlg2->BringWindowToTop(); //对话框置前
  }

  pdlg2->ShowWindow(SW_SHOW); //显示非模态对话框
  pdlg2->UpdateWindow(); //更新非模态对话框中的各个控件
}


 

    以上是“按钮一”、“按钮二”的代码。当关闭主窗口时还要释放非模态对话框所占的资源,现在为主窗口添加WM_ON_CLOSE消息,编写如下的代码释放所占的的资源:

void CDemoDlg::OnClose()
{
   // TODO: Add your message handler code here and/or call default
   if(pdlg1 !=NULL) delete pdlg1; //释放非模态对话框所占资源
   if(pdlg2 !=NULL) delete pdlg2; //释放非模态对话框所占资源
   CDialog::OnClose();
}


 

    要记得在DemoDlg.cpp上面添加头文件

    #include "Dlg1.h"
    #include "Dlg2.h"

8、现在运行即可实现非模态对话框效果了:在点击显示对话框时,如果对话框未创建,则创建该对话框,否则将已创建的对话框显示出来。

[MFC] 创建(非)模态对话框以及可能出现的问题 此外,该函数还会销毁窗口的菜单、定时器,移除剪贴板所有权,并打破剪贴板查看器链(如果该窗口位于查看器链的顶部)。该段代码中,我们静态声明了一个指针变量,首次运行时指向CFMoTiDlg类new的一段内存地址,当关闭一个非模态窗口时, DestroyWindow()函数回收所有该类的资源,pfmt_dlg指针失效,因此,再次运行创建时,程序会直接崩溃。类对象fmt_dlg需要定义在函数外部,由于非模态窗口在代码运行时不会阻塞,因此如果对象创建在内部则会被瞬间销毁。但是,每个对话框实例在创建后只能显示一次。 阅读详情

相关推荐

模态对话框和非模态对话框

分类:模态对话框工作状态:当它获得焦点时,将垄断用户的输入,在完成本对话框之前,用户无法对本程序的其他部分进行操作。非模态对话框类似于WORD里的查找替换,就在应用程序打开非模态对话框的同时还可以切换到其他窗口进行操作。二者的类都派生于CDialog类,而CDialog类派生于CWnd类。区别:模态对话框使用CDialog::DoModal函数创建以及销毁。初始化消息WM_INITDIALOG,调用OnInitDialog初始化并显示,创建完毕后,DoModal启动消息循环。DoModal运行时候,程序会停

优快云-MarkYang 2760

MFC 创建模态与非模态对话框

点击跳转到视频教程 1.创建模态对话框 在生成的Button点击事件中加入 创建模态对话框的代码 // IDD_DIALOG1d 代表刚才在资源文件中创建的对话框的ID CDialog dlg(IDD_DIALOG1); dlg.DoModal(); 运行,点击创建模态对话框按钮,就会创建出来一个模态对话框 如果我们需要在模态对话框中增加一些交互,比如增加一个编辑框,等待用户输入,或者增加一个Button,并添加点击事件等。这时候,就需要对刚才我们创建的模态对话框进行绑定类。 给模

hugang的博客 4477

VC模态对话框和非模态对话框的创建和关闭

Windows下的对话框分为两类:Modal dialog boxes 和Modeless dialog boxes,即模态对话框和非模态对话框。         一、概述:MSDN里面对它们的概述分别是:        Modal dialog boxes require users to complete and close before continuing with the owner

xbmoxia的专栏 3319

C++MFC基于对话框的编程——模态(非模态)对话框

C++MFC入门,第一个MFC程序(基于对话框),控件属性,创建类,代码关联ui,模态对话框与非模态对话框,button控件与事件编写

qq_58619891的博客 4024

VS2019/MFC编程入门之对话框:非模态对话框的创建及显示

上一节讲了模态对话框及其弹出过程,本节接着讲另一种对话框--非模态对话框的创建及显示。 已经说过,非模态对话框显示后,程序其他窗口仍能正常运行,可以响应用户输入,还可以相互切换。将上一讲中创建的Tip模态对话框改为非模态对话框,让大家看下效果。当功能实现了想要拥有美观的界面可以借助Toolkit Pro进行界面优化。 Xtreme Toolkit Pro:是屡获殊荣的VC界面库,是MFC开发中最全面界面控件套包,它提供了Windows开发所需要的11种主流的Visual C++ MFC控件,包括Comm

qq_42444778的博客 845

全面掌握VC/MFC界面设计:实例与教程

MFC(Microsoft Foundation Classes)是微软提供的一套C++类库,用于简化Windows应用程序的开发。它封装了Win32 API,让开发者能够使用面向对象的方式进行编程。MFC应用程序通常包含三个主要部分:应用程序框架、文档/视图和资源。框架负责消息循环和窗口管理,文档/视图负责数据的存储和展示,资源包括了应用程序的菜单、对话框、图标等。以上章节为MFC开发的入门知识点,构成了MFC编程基础。接下来,我们将深入探讨如何利用这些基础知识设计和实现窗口与对话框。

weixin_36300623的博客 1243

VC非模态对话框创建和销毁

VC非模态对话框创建和销毁 非模态对话框相对于模态对话框,他的创建和销毁过程和模态对话框有一定的区别 先看一下MSDN的原文: When you implement a modeless dialog box, always override the OnCancel member function and call DestroyWindow from within it. Don’t call the base

FISH 的专栏 1093

mfc中模态、非模态对话框与主对话框之间的数据交换

点击运行弹出一个对话框,点击DIALOG1按钮弹出一个模态对话框,在该对话框的编辑框输入文本点击确定该对话框消失且输入的文本被显示到主对话框MainDialog中,点击DAILOG2按钮弹出一个非模态对话框,操作现象和模态对话框一样。

MFC非模态对话框教程

MFC非模态对话框教程 Tutorial - Modeless Dialogs with MFC 开发工具:VC6, VC7, C++, Windows, MFC, VS, VS.NET2002, Dev 摘要:文章解释MFC一些非模式对话框应用的技巧和建议。 所含源码列表:Download Project [VC++ .NET] - 22 Kb 简...

dengliu3612的博客 285

CHIP-Seq数据分析流程

文章目录CHIP-Seq数据分析流程相关软件安装数据下载将SRA转化为fastq文件数据质控,过滤数据质控然后进行质控,过滤低质量reads,去接头比对下载小鼠参考基因组的索引和注释文件比对sam文件转bam为bam文件建立索引载入IGV查看用MACS call peak安装MACS结果注释与可视化 CHIP-Seq数据分析流程 相关软件安装 所需要的软件有sratoolkit, fastqc,bowtie2,samtools,macs2,htseq-count,bedtools和前面RNA-seq数据分析

bio_meimei的博客 8789

python进行windows系统UI自动化之【pyautoit】

一般以我们平时操作,会从下图上方的地址栏进行操作,这里注意可以直接从下方的文件名处,输入对应的绝对地址,如:F:\程序设计书籍\《啊哈!pyautoit 是一个用python写的基于AutoItX3.dll的接口库,用来进行windows窗口的一系列操作,也支持鼠标键盘的操作。点击上访的图标,进行拖拉,到想访问的位置,注意下图两个红框中的数值,上面的框表示页面的标题和类,下面的框表示控件的类和序号(一般连起来使用)打开Auto Window Info(x64)或Auto Window Info(x86)

weixin_43936332的博客 9314

MFC创建非模态对话框,新窗口不获取焦点

MFC创建多个非模态对话框,部分窗口不获取焦点 开发环境VS2017+MFC工程 非模态对话框 在主对话框内创建两个非模态对话框时,其中先创建的窗口是输入数据并设置的,后创建的对话框只是作为显示状态的内容。所以我需要将焦点设置到第一个创建的对话框,后创建的对话框只是默认创建并且显示在桌面上(可以通过MoveWinodow把对话框确定屏幕上的位置)。 首先,在创建需要设置焦点的对话框的过程中添加Se...

weixin_40706996的博客 1886

抖音直播小风车跳转企业微信全攻略:企业号申请+落地页配置详解

本文详细解析了抖音直播小风车跳转企业微信的全流程,包括企业号申请、小风车配置和落地页优化。通过实战指南,帮助企业高效实现私域流量沉淀,提升直播转化率,特别适合电商和营销从业者参考。

weixin_29289821的博客 613

非模态对话框的使用

我:通过Create函数来调用非模态对话框是关键之处。由于create不会启动新的消息循环,对话框与应用程序共用同一个消息循环,这样对话框就不会垄断用户的输入。Create函数会在显示了对话框之后立即返回,而DOMODAL()函数是在对话框被关闭后才返回。 由于窗口对象的生存期应长于对应的窗口,也就是说,窗口(或者说对话框)关闭了,但是对象并不一定会被删除。由于Create返回

deirdre的专栏 974

单细胞实战之亚细胞分群从T/NK至CD4+T细胞——从入门到进阶(中级篇1)

亚细胞分群从T/NK至CD4+T细胞

zfyyzhys的博客 6389

相机光学(三十八)——VCM(Voice Coil Motor)音圈马达

VCM(Voice Coil Motor)音圈马达全称Voice Coil Montor,电子学里面的音圈电机,是马达的一种。因为原理和扬声器类似,所以叫音圈电机,具有高频响、高精度的特点。其主要原理是在一个永久磁场内,通过改变马达内线圈的直流电流大小,来控制弹簧片的拉伸位置,从而带动上下运动。手机摄像头广泛的使用VCM实现自动对焦功能,通过VCM可以调节镜头的位置,呈现清晰的图像。弹片式结构滚珠式结构摩擦式结构Open loop开马达Close loop闭环马达。

图像学习之旅 7217

VC 模式对话框和非模式对话框的创建,销毁和区别

在WIN32中,模式对话框的创建一般是使用DialogBox来进行创建的。而非模式对话框则是利用CreateWindow来创建的。在MFC或是WTL中,模式对话框一般是使用DoModal,而非模式对话框的创建则是使用Create。模式对话框创建后,程序的其他窗口便不能进行操作,必须将该窗口关闭后,其他窗口才能进行操作。而非模式对话框则无需这样,它不强制要求用户立即反应,而是与其他窗口同时接受用户操作。 Create的Dialog一般是modalless,如果你的程序本身就是只有一个Dialog,就无所谓了

mycaibo编程 6222

1、网站可靠性工程(SRE):原理、实践与转型指南

本文深入探讨了网站可靠性工程(SRE)的核心原理、实践方法以及组织转型策略。从SRE的基本概念如服务水平指标(SLI)、服务水平目标(SLO)和错误预算入手,详细解析了如何通过SRE实现产品开发、运营和管理团队的高效协作。此外,还涵盖了SRE的实施步骤,包括现状评估、组织认同、基础设施建设、事件响应、错误预算政策制定以及组织结构设计等内容。最后,文章展望了SRE的未来发展,强调了服务目录、合规监管及SRE文化建设的重要性,为企业的现代化运营体系转型提供了全面指南。

xk7n92h3p5m的博客 145

对话框设置及常用控件,创建模/非模态对话框态对话框(VC_MFC)

目录 设置对话框背景颜色 常用控件及对应类创建模态/非模态对话框为对话框控件添加关联变量 (本章节中例子都是用 VS2005 编译调试的) 设置对话框背景颜色 [利用OnPaint 来实现修改对话框背景颜色][利用OnCtlColor 实现修改对话框背景颜色] 利用OnPaint 来实现修改对话框背景颜色 说明:  在窗口重绘时候获得资源 DC 然后FillS...

diaogui7903的博客 317

K230+canMV开发中常见的数据类型转换参考示例

【代码】K230+canMV开发中常见的数据类型转换参考示例。

weixin_47446386的博客 68

openHarmony之AI Engine:万字讲解如何在应用、开发板上接入AI大模型调用

本文章介绍如何在 OpenHarmony 开发板上集成和部署各类 AI 大模型,实现终端直接聊天功能,并为语音助手、智能机器人等应用提供 AI 接口支持。

m0_67505153的博客 619

转:VC非模态对话框创建和销毁

<br />非模态对话框相对于模态对话框,他的创建和销毁过程和模态对话框有一定的区别 <br /><br />先看一下MSDN的原文:<br /><br />When   you   implement   a   modeless   dialog   box,   always   override   the   OnCancel   member   function   and   call   DestroyWindow   from   within   it.   Don’t   call 

tompaz的专栏 823

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

接触VC之三:MFC基于对话框程序

下载本文示例工程(VC.Net版本)最 近,本人赶时髦,装上了一套Visual Studio.net,安装要2213M呢,硬盘上三个盘符总共剩下不足2G的地方了。不过,界面相当的漂亮,且功能强大,值得心慰。我终于可以在类视图 上,尽情去看类的基类,以及基类的实现代码了。不仅如此,最好的是那附带的MSDN上所有的VC基础文章都是中文,翻译的比希望出版社的好得没的说。什么 文档啊,框加窗口啊,多视图啊

LEE的专栏 3436

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

VC非模态对话框

1.创建非模态对话框。 首先添加对话框,然后添加相关的类。利用建成的类(要新建的对话框的类)创建对话框。 CRelay *CRdlg = new CRelay; CRdlg->Create(IDD_DLG_RELAY); CRdlg->ShowWindow(SW_NORMAL); 利用Create和ShowWindow可以将新建的对话框显示出来。 在退出函数中应该销毁。 调用 D

bmbm546的专栏 1471

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

上一篇: C/C++中的整型常识
下一篇: 汇编中的管道操作方法
UnixCRoot
博客等级 码龄14年 17粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值