技术标签: 文档 delphi 编译器 编程 MFC mfc 框架
有人说聪明的程序员用Delphi,我承认我并不聪明,虽然Delphi确实很好用,但实在是受不了Delphi的那个编译器,在编辑器中鼠标光标到处乱跑,除非需要的程序是急用,否则我的第一选择不是Delphi。有人也说真正的程序员用VC,当然,我也不得不承认自己压根儿就不是一个程序员,只是一个喜欢编程又上不了档次的准菜鸟,不过我偶尔也会拿起VC玩玩。
在Delphi中要画一个界面,只需要鼠标一拖一拉就搞定了,而VC呢?让我们来画一个简单的界面吧!界面很简单,一个按钮,一个支持多行显示的文本框。
首先创建一个单文档视图的MFC程序,在视图向导的最后一步中选择CFormView视图,这样便于拖拉控件。对于MFC的单文档和多文档视图暂不去了解,反正太复杂,何必自己找罪受。执行完视图向导后,按F5键,一个MFC的程序就出来了(如图1)。
图1
通常我们需要的界面不是这样的,菜单我不一定要;窗体标题中的“Untitled”我是不需要的;窗体正文区域大多程序都不是凹进去的。因此,新建好一个MFC程序后首先要修改的就是这几个部分。
1. 修改窗体标题、禁止调整窗体大小、不显示窗体菜单
2. 增加窗体的WS_EX_CLIENTEDGE扩展样式
如果对MFC的结构没一点儿了解,那么这个操作会让你很头痛。一个单文档视图大概分为框架类、视图类、文档类,其中框架类和视图类中都会更新界面设置。但奇怪的是不管我在框架类的PreCreateWindow或视图类的PreCreateWindow中添加cs.dwExStyle &= ~WS_EX_CLIENTEDGE;都不起作用,只有在框架类和视图类的PreCreateWindow中都添加这句代码才有效。为了弄清这个问题,去看了一下MFC中的winfrm.cpp,结果代码跳来跳去的,人越来越晕。其实要想真正弄清,就只有好好的读MFC源码了。
最后我对这个问题的理解为:在框架和视图的创建过程中……
未完,先研究一下MFC源码
one-hot编码(每列只有一个1,其他都为0的一维矩阵)一.图示二.代码实现import numpy as np# 分词过的语料corpus = [ '这 是 第一个 文档', '这是 第二个 文档', '这是 最后 一个 文档', '现在 没有 文档 了']## 1.手动实现words = []for corpu in corpus: words.extend(corpu.split())words = list(set(words).
藏 新建一个MFC标准Dialog工程并生成一个CStatic的自定义类,我的类名为CColorStatic定义必要变量[cpp] view plaincopyprint?protected: COLORREF m_crText; // 字体颜色 COLORREF m_crBackColor; // 背景颜色
菜鸟教程Python3实例刷题 51-64题目网址 https://www.runoob.com/python3/python3-examples.html本篇记录了《第51题:移除字符串中的指定位置字符》 至 《第64题:打印自己设计的字体》剩下65~75题分别是:【查找:二分查找、线性查找】、【排序:9种排序】单独放在一个blog51# 给定一个字符串,然后移除指定位置的字符:str = "Runoob"place = int(input("输入位置: "))new_str = s
本系统经过多年应用并且持续不断改进,系统各部功能已基本完善,非常适合大型医疗集团,当然小型医院或科室就更适合了。文件:590m.com/f/25127180-499031859-968efa(访问密码:551685)以下内容无关:-------------------------------------------分割线---------------------------------------------Flink的API做了4层的封装,上两层TableAPI、SQL语法相对简单便于编写,面对小
springbootweb属性配置*************************************容器属性配置[email protected]( prefix = "server", ignoreUnknownFields = true)public class ServerPropert...
英雄类代码package hero;public class Hero { //静态特征 String name; //姓名 double aggressivity; //攻击力 double defenf; //防御力 double vitality; //生命力 //构造方法 //无参构造 public Hero() { } //有参...
实现原理参考:http://www.ibm.com/developerworks/cn/java/j-lo-instrumentation/ 1.首先使用VisualVM 下载btrace插件并安装完成。2.在Eclipse中写个测试类如下:package com.lss.test;import java.io.BufferedReader;import java.io.IOExc
orgList = ['MA1WYPU7-X', 'MA3828DP-X', 'MA72057F-2', 'MA31Y86J-4', 'MA31Y5GQ-7', 'MA45JGJA-9', 'MA0CKGXH-X', 'MA2RXWPR-2', 'MA2RXXFW-2', 'MA1WYP3L-2', 'MA45KE3B-5', 'MA5F8J6T-0', 'MA2CDF71-6', 'MA5T5J...
前提未来一段时间开发的项目或者需求会大量使用到Redis,趁着这段时间业务并不太繁忙,抽点时间预习和复习Redis的相关内容。刚好看到博客下面的UV和PV统计,想到了最近看书里面提到的HyperLogLog数据类型,于是花点时间分析一下它的使用方式和使用场景(暂时不探究HyperLogLog的实现原理)。Redis中HyperLogLog数据类型是Redid 2.8.9引入的,使用的时候确保Redis版本>= 2.8.9。HyperLogLog简介基数计数(cardinality counti
我使用boost::serialization主要是用在软件的工程管理中,在工程管理中版本兼容是很重要的,比如要保证一个比较旧的工程在最新版的软件里仍然可以被导入。 boost中可以使用BOOST_CLASS_VERSION这个宏为某个结构体(类)标记版本号(版本号最大是256)。但在使用时发现这个宏有一个局限,就是不能为泛型结构体(类)标记。比如有以下支持序列化的结构体:tem
4, inputDispatching Timeout当input事件处理得慢就会触发ANR.ANR时间区别便是指当前这次的事件dispatch过程中执行findFocusedWindowTargetsLocked()方法到下一次执行resetANRTimeoutsLocked()的时间区间.在InputDispatcher.cpp的事件分发过程中, 如果是Key event事件,则会
随着时代的进步,越来越多的电子家居产品实现智能化,能更好的满足人机互动的需求,越来越多的LED数码管显示界面跟新换代选择使用LCD段码式液晶屏,配套一个背光源来实现更清晰的显示界面,背光源和液晶屏是配套使用的两个不同类型的产品,分别独立的个体,很多客户会问有没有一种办法能让它们能够粘在一起,这样容易固定也方便定位,对于有金属针脚的液晶屏,常规的步骤是先焊接背光,然后撕掉背光扩散膜上面的保护膜,在撕...