开始VC之路

大模型微调框架之TRL 近年来,大语言模型(LLMs)的快速发展推动了下游应用的繁荣,但如何高效地对这些模型进行对齐和微调,依然是研究与应用的热点。Hugging Face 开源的 TRL(Transformer Reinforcement Learning) 框架,提供了基于强化学习的语言模型训练方法,并支持 SFT(监督微调)、PPO(近端策略优化)、DPO(直接偏好优化)等多种方式,是目前对齐和微调 LLM 的重要工具。 阅读详情

第一讲 用Create()方法新建一个窗体应用程序

  一般来讲,大多数Windows应用程序的界面都是由一个或数个窗体构成。
而VC++中提供了丰富的类库,用于创建Windows窗体应用程序。
  我们一般可以通过CFreameWnd类中的Create()方法来创建一个窗体,Create()
函数的定义如下:

BOOL Create(LPCTSTR lpszClassName,
  LPCTSTR lpszWindowName,
  DWORD dwStyle = WS_OVERLAPPEDWINDOW,
  const RECT& rect = rectDefault,
  CWnd* pParentWnd = NULL,        // != NULL for popups
  LPCTSTR lpszMenuName = NULL,
  DWORD dwExStyle = 0,
  CCreateContext* pContext = NULL);


  这是一个虚函数①,第一个参数lpszClassName是一个窗体类名字符串的指针
(一个WNDCLASS②结构体)。此类名可以是任意的由全局函数AfxRegisterWndClass
注册过的预定义控件类名。如果为空,则使用CWnd类的默认属性。第二个参数
lpszWindowName是作为窗体标题的字符串指针。
  第三个参数dwStyle是宏定义的窗体类型,具体定义如下:

WS_BORDER  创建一个有边框的窗体。

WS_CAPTION  创建一个有标题栏的窗体(隐含了WS_BORDER). 不能和WS_DLGFRAME
   一起使用.

WS_CHILD  创建一个子窗体。不能和WS_POPUP一起使用。

WS_CLIPCHILDREN  不包括在父窗体中被子窗体占用的区域。用于创建父窗体。

WS_CLIPSIBLINGS  使子窗体彼此别住;就是当一个指定的子窗体接收到一个
   paint消息时,WS_CLIPSIBLINGS类型将别住所有重叠的子窗
   体超过区域的部分一起更新,(如果没有使用WS_CLIPSIBLINGS
   并且子窗体重叠,当你在一个子窗体的客户区绘图时,可能
   会绘图到邻近的子窗体的客户区。)只与WS_CHILD一起使用。

WS_DISABLED  创建一个初始不可用的窗体。

WS_DLGFRAME  创建一个有双边但无标题的窗体。

WS_GROUP  指定一个用户可以用方向键从一个控件移到另一个控件的控
   件组的第一个控件。All controls defined with the WS_GROUP
   style FALSE after the first control belong to the same
   group. The next control with the WS_GROUP style starts
   the next group (that is, one group ends where the next
   begins).

WS_HSCROLL  创建一个带水平滚动条的窗体。

WS_MAXIMIZE  创建一个最大尺寸的窗体。

WS_MAXIMIZEBOX  创建一个有最大化按扭的窗体。

WS_MINIMIZE  创建一个初始最小化的窗体。只与WS_OVERLAPPED一起使用。

WS_MINIMIZEBOX  创建一个有最小化按扭的窗体。

WS_OVERLAPPED  创建一个重叠窗体。一个重叠窗体一般有标题和边框。

WS_OVERLAPPEDWINDOW 创建一个和WS_OVERLAPPED, WS_CAPTION, WS_SYSMENU,
   WS_THICKFRAME, WS_MINIMIZEBOX, and WS_MAXIMIZEBOX一
   使用的重叠窗体。

WS_POPUP  创建一个弹出式窗体。不能和WS_CHILD一起使用。

WS_POPUPWINDOW  创建一个和WS_BORDER, WS_POPUP, and WS_SYSMENU一起使
   用的弹出式窗体。WS_CAPTION必须和WS_POPUPWINDOW组合使
   用才能让控件菜单可见。

WS_SYSMENU  创建一个在标题栏有控件菜单框的窗体。只能和有标题栏的
   窗体一起使用。

WS_TABSTOP  指定任意数量控件中的一个可以由用户使用TAB键移动到的
   控件。TAB键使用户移动到由WS_TABSTOP指定的下一个控件。

WS_THICKFRAME  创建一个有厚边框的Window,使其可以改变大小。

WS_VISIBLE  创建一个初始可见的窗体。

WS_VSCROLL  创建一个有垂直滚动条的窗体。

  由于上表中常量可以进行组合,用按位或运算,所以常量名的值被定义为类似于
0x00C00000L的32位16进制数型式。例如进行WS_SYSMENU|WS_MINIMIZEBOX运算时即
0x00080000L|0x00020000L。数字前面的0x是16位数的标识符,L表示32位,上式的演
算式可表示如下:

=
 00000000000010000000000000000000
    (|) 00000000000000100000000000000000
------------------------------------------
        00000000000010100000000000000000  =  0X000A0000L = 655360;

  当你用十进制数655360替代WS_SYSMENU|WS_MINIMIZEBOX作为实参时,你会看到相
同的结果。

  第四个参数rect是一个RECT结构体的对象,用于指定窗体的尺寸和位置。RECT结
构体的定义如下:

typedef struct tagRECT
{
    LONG    left;
    LONG    top;
    LONG    right;
    LONG    bottom;
} RECT, *PRECT, NEAR *NPRECT, FAR *LPRECT;

  我们可以利用从tagRECT结构体派生出的CRect类的构造函数来初始化一个RECT结构
体。CRect的一个重载构造函数定义如下:

// from left, top, right, and bottom
CRect(int l, int t, int r, int b);


  第五个参数pParentWnd用于指定父窗体,这是一个指向CWnd类对象的指针。第六
个参数nID用于指定作为子窗体的窗体ID。最后一个参数是关于创建内容的指针,已
被默认为NULL,不用理会。


注释:

① 虚函数的作用:如果没有把需要在派生类中重载的同名
基类函数定义为虚函数,则当用基类定义的指针指向派生类对象的地址时(赋
值兼容规则),通过此指针调用的该同名函数是在基类中定义的;反之如果定
义的虚函数,则通过指针调用的该同名函数是在指针指向的对象中定义的。

 

第二讲 Create()方法的应用

下面是一个用CFrameWnd类的Create()函数创建一个窗体的例子:

/////////////////////////////////////////////
#include

class CMyWnd:public CFrameWnd
{
public:
 CMyWnd()
 {
  Create(AfxRegisterWndClass(CS_DBLCLKS,0,HBRUSH(COLOR_WINDOWFRAME),AfxGetApp()->LoadStandardIcon(IDI_APPLICATION)),__T("Creamdog"),WS_SYSMENU,CRect(100, 100, 500, 500),this,NULL);
  ShowWindow(SW_SHOWNORMAL);
 };
};

class CMyApp:public CWinApp
{
public:
 virtual BOOL InitInstance()
 {
  m_pMainWnd=new CMyWnd;
  return TRUE;
 };
};

CMyApp myApp;
/////////////////////////////////////////

  首先从其类CFrame中派生出CMyWnd类,并定义构造函数,用于生成一个新窗体。
在构造函数中是使用Creat()函数创建窗体的,其中系统全局函数AfxRegisterWndClass()
用于注册一个窗体类,该函数的具体定义如下:

LPCTSTR AFXAPI AfxRegisterWndClass(UINT nClassStyle, HCURSOR hCursor = 0, HBRUSH hbrBackground = 0, HICON hIcon = 0);

  第一个参数nClassStyle指定了窗体类的类型,如果为NULL则所有参数都使用
默认值。具体默认值为:

nClassStyle=CS_DBLCLKS;//响应双击事件
hCursor=IDC_ARROW;//标准箭头
hbrBackground=Null;//不更新背景
hIcon=IDI_APPLICATION;//Windows徽标(在WinXP中为小窗口)

  由于用默认值时窗体不会更新,一般函数的四个参数需要人为指定,第一个参数
设为为CS_DBLCLKS即可。CS_DBLCLKS是窗体类型的一个宏定义,下表列出了所有窗体
类型的宏定义。

CS_BYTEALIGNCLIENT 在字节边界(在X方向)上对齐窗体的客户区。此类型将影
   响到在窗体显示时它的宽度和它的水平位置。

CS_BYTEALIGNWINDOW 在字节边界(在X方向)上对齐窗体。此类型将影响到在窗
   体显示时它的宽度和它的水平位置。

CS_CLASSDC  分配一个设备环境并被类中的所有窗体共享。由于窗体类
   被处理特化,它是可以适用于一个应用程序的若干线程创
   建一个相同类的窗体。它同样适用于多个线程试图同时使
   用相同的设备环境。当此种情况发生时,系统只允许一个
   线程去成功的它的绘图操作。

CS_DBLCLKS  当指针在属于此类的窗体内部,并且用户双击鼠标时,将
   会发送一个双击消息到窗体程序。

CS_GLOBALCLASS  指定此窗体类是一个应用程序全局类。应用程序全局类是
   由一个在进程中对所有模块有效的exe或ddl注册的一个窗
   体类。

CS_HREDRAW  如果窗体被移动或尺寸调整器改变了客户区的大小,重绘
   全部的窗体。

CS_NOCLOSE  关闭按扭不可用。

CS_OWNDC  为此类中的每一个窗体分配唯一的设备环境。

CS_PARENTDC  设置子窗体中剪下的矩形到父窗体中,以使子窗全可以在父
   窗体上绘图。一个具有CS_PARENTDC属性控制的窗体从设备
   环境的系统缓存中接收到一个规则的设备环境。它不把父窗
   体的设备环境或设备环境设置给予子窗体。指定CS_PARENTDC
   以提高应用程序的性能。

CS_SAVEBITS  保存被此类的一个窗体摭住的屏幕图象的一部分为位图。当
   窗体被移动,系统使用保存过的位图去恢复屏幕图象,包括
   其它被摭住的窗体。因此如果被位图使用内存没有被释放,
   并且其它的屏幕动作没有使储存的图像无效。系统不会发送
   WM_PAINT消息到被摭盖的窗体。
   这种类型对在其它屏幕动作发生时被暂时显示小窗体(如菜
   单或对话框)很有用。这种类型增加了显示窗体所需的时间,
   因为系统必须先分配内存去存储位图。
 
CS_VREDRAW  如果窗体被移动或尺寸调整器改变了客户区的高度,重绘
   全部的窗体。

  上表中的宏定义值是类似于0x0080的16位16进制数,因此它们之间可以用按位
或 | 符号进行组合,原理前面以经介绍过了。

  第二个参数hCursor为鼠标指针的句柄,但由于在窗体打开事件发生时,光标就
会被重绘为箭头,因此在注册窗体类时对此进行设置意义不大,设为0即可。如果需
要定义光标,首先应关闭数标重绘,方法是:重载窗体类基类的OnSetCursor()函数,
让其返回TRUE值,这样当重绘时调用OnSetCursor()函就不起作用了。可以用下面的
语句进行设置。

SetCursor(AfxGetMainWnd()->LoadStandardCursor(IDC_IBEAM));

  其中::SetCursor()是全局函数,用来设置整个例程的光标参数是宏定义光标句
柄。AfxGetMainWnd()是一个系统函数,它返回当前主窗体的句柄。而CWinApp的
LoadStandardCursor()成员函数用来读取一个系统指针,每一种系统指针的具体宏
定义如下:

IDC_APPSTARTING  带小沙漏的标准箭头
IDC_ARROW  标准箭头
IDC_CROSS  十字光标(用于定位)
IDC_HAND  Windows 2000:手型
IDC_HELP  带问号的箭头
IDC_IBEAM  I型标
IDC_ICON  Obsolete for applications marked version 4.0 or later.
IDC_NO   禁止符号
IDC_SIZE  Obsolete for applications marked version 4.0 or later. Use IDC_SIZEALL.
IDC_SIZEALL  十字箭头
IDC_SIZENESW  指向东北和西南的双向箭头
IDC_SIZENS  指向南和北的双向箭头
IDC_SIZENWSE  指向西北和东南的双向箭头
IDC_SIZEWE  指向东西的双向箭头
IDC_UPARROW  上箭头
IDC_WAIT  沙漏

  上表中宏定义值为类似于MAKEINTRESOURCE(32649)的函数,MAKEINTRESOURCE()的
定义如下:

#define MAKEINTRESOURCEW(i) (LPWSTR)((DWORD)((WORD)(i)))   //UNICODE
#define MAKEINTRESOURCE  MAKEINTRESOURCEW

  将其还原为容易理解的C代码:

char *(unsigned long(unsigned short(32649))
  至于为什么系统要将其倒来倒去,是为了在重载函数中和一般的整形实参相区
别(本人估计)。另外,如果想要使用自定义图标或指针文件,则牵扯到实例资源
分配的问题,将在以后进行说明。

  第三个参数hbrBackground,指定窗体背景的画笔资源,应该指定一个,否则
背景将不会更新。此参数可使用系统颜色,定义如下:

COLOR_SCROLLBAR   0
COLOR_BACKGROUND  1
COLOR_ACTIVECAPTION  2
COLOR_INACTIVECAPTION  3
COLOR_MENU   4
COLOR_WINDOW   5
COLOR_WINDOWFRAME  6
COLOR_MENUTEXT       7
COLOR_WINDOWTEXT  8
COLOR_CAPTIONTEXT  9
COLOR_ACTIVEBORDER  10
COLOR_INACTIVEBORDER  11
COLOR_APPWORKSPACE  12
COLOR_HIGHLIGHT   13
COLOR_HIGHLIGHTTEXT  14
COLOR_BTNFACE   15
COLOR_BTNSHADOW   16
COLOR_GRAYTEXT   17
COLOR_BTNTEXT   18
COLOR_INACTIVECAPTIONTEXT 19
COLOR_BTNHIGHLIGHT  20

  第四个参数为程序图标的标识符,为0时是默认的Windows徽标。与光标同样,
需要自定义图标时,添加设置图标的语句,例如:

AfxGetMainWnd()->SetIcon(AfxGetApp()->LoadStandardIcon(IDI_EXCLAMATION),FALSE);

  与设置光标不同的是,设置光标的函数是全局函数,而设置图标的函数是
CWinApp类的成员函数(因为图标只在窗体内有效),故在函数调用之前需要用系
统函数AfxGetMainWnd()来获取当前主窗体的句柄,再用CWinApp的LoadStandardIcon()
成员函数来读取系统图标并返回一个图标的句柄,最后CFrameWnd类的SetIcon()
成员函数将窗体的图标设置为刚才返回的图标句柄。

  回到刚才的Create()语句,第一个参数用的是刚才注册的类名。第二个参数中
用到了强制类型转换(__T),这个数据类型不对字符串做任何的改变,只是起到规
范化编程的做用。第三个参数是前面提过的窗体类型,WS_SYSMENU是使窗体具有最
大化、最小化、关闭三个按扭。第四个参数使窗体在所给出的位置和尺寸上打开。
第五个参数this的意义是此窗体为父窗体。第六个参数表示无子窗体。
  ShowWindow()故名思意,即显示窗体。其参数nCmdShow是确定窗体被怎样显示。
它必须是下面宏定义中的一个:

SW_HIDE   0 隐藏此窗体并激活其它窗体。

SW_MAXIMIZE  3 激活并显示此窗体为最大化。

SW_MINIMIZE  6 最小化指定的窗体并激活下一个在Z顺序中位
    于顶层的窗体。

SW_RESTORE  9 激活并显示此窗体。如果此窗体已被最大化或
    最小化,系统将恢复此窗体至原尺寸和原位置。
    一个应用程序应该在恢复一个最小化窗体时指
    定这个标记。

SW_SHOW   5 在当前尺寸和位置上激活并显示此窗体。

SW_SHOWMAXIMIZED 3 同SW_MAXIMIZE

SW_SHOWMINIMIZED 2 激活并显示此窗体为最小化。

SW_SHOWMINNOACTIVE 7 显示此窗体为最小化。这个值类似于SW_SHOWMINIMIZED,
    除非窗体未被激活。
SW_SHOWNA  8 在最近一次的尺寸和位置显示此窗体,这个值
    类似于SW_SHOWNORMAL,除非窗体未被激活。

SW_SHOWNOACTIVATE 4 在当前的尺寸和位置显示此窗体。这个值类似于SW_SHOW,
    除非窗体未被激活。

SW_SHOWNORMAL  1 激活并显示一个窗体。如果此窗体已被最大化
    或最小化,系统将恢复此窗体至原尺寸和原位置。
    一个应用程序应该在第一次打开这个窗体时指定
    这个标记。

  有关窗体框架的定义就结束了,下面是由CWinApp基类派生出的类CMyApp,在
类定义中对基类中的虚成员函数InitInstance()进行了重载,关于虚函数的有关概
念前面以经提过了。在开始说明此函数内部的语句时首先需要对CWinApp的数据成员
m_pMainWnd进行说明。
  m_pMainWnd数据成员被用于储存一个指向你的线程中主窗体对向的指针。当涉
及到m_pMainWnd的窗体被关闭时,MFC库将自动的终止你的线程。如果此线程为你的
应用程序中的主线程,应用程序也将同样被终止。如果此数据成员为NULL,当终止
此线程时,为了应用程序的CWinApp对象的主窗体也将常常被终止。m_pMainWnd是
CWnd类指针的一个公有变量。
  一般来讲,当你重载InitInstance()函数时设置此变量。在一个工作线程中,
此数据成员的值是从它的父线程中继承来的。
  正如上面所说,例子中在重载InitInstance()函数时对此变量进行了赋值,让
它指向一个新的框架窗体类对象,而这个对象是由刚才定义的派生类CMyWnd实例化
出来的。下来返回一个真值,表示初始化实例成功。
  最后,用CMyApp类实例化出一个对象,名子随意。系统将对前面定义的类和函
进行构造,这样就完成了一个简单窗体的创建。

U盘插入电脑时发出声音但不显示——编程解决方案 以上是一些常见的编程解决方案,帮助您解决U盘插入电脑时发出声音但不显示的问题。请注意,这些解决方案可能因不同的情况而略有不同,因此请根据您的具体情况进行调整和尝试。当您将U盘插入电脑时,如果您听到了连接声音,但是U盘却没有在文件资源管理器或桌面上显示出来,这可能是由于一些常见问题导致的。U盘的文件系统格式可能与您的计算机不兼容,导致无法正确识别。如果输出显示U盘的文件系统格式与您的计算机不兼容,您可以尝试重新格式化U盘或使用其他兼容的文件系统格式。其中,X是U盘的磁盘编号,Y是您想要分配给U盘的盘符。 阅读详情

相关推荐

跟着团子学SAP CO:结果分析各评估方法计算逻辑概览 RA Valuation Method Overview KKA1/KKA2/KKA3

在大部分企业财务月结时,结果分析是必不可少的一环,通过结果分析系统可按照设定的评估方法及相关配置自动计算在制品(WIP)、主营业务成本、主营业务收入等等。 在结果分析中最重要的是根据业务需求选择合适的评估方法,目前SAP共提供15种评估方法,今天针对每一种方法计算逻辑及常用的业务场景进行介绍: (1)基于收入的评估方式(带利润实现) Revenue-Based Method with Profit Realization 第一种方式的计算是基于实际收入与计划收入的占比推算应结转的主营业务成本,如果当期累计的

Lucas1211的博客 1万+

vc2019学习一·,文件的创建

vc++2019,文件的创建

strong025的专栏 407

海康线扫相机平场矫正实战:从原理到精准成像

本文深入解析了海康线扫相机平场矫正的原理与实战操作。通过拆解暗场与明场矫正的物理意义,揭示了其消除系统噪声、补偿像素响应不均的核心机制。文章详细指导了在海康相机上进行平场矫正的标准化流程、关键参数设置(如行高、灰度值控制)及常见误区,并提供了针对高行频匹配、环境稳定性维护等进阶调优技巧与问题排查指南,旨在帮助用户实现从原理理解到精准成像的跨越。

tomato的博客 790

VC 确保你要的路径创建成功

在创建本地文件前都要先去检查文件夹路径是否存在,如果不存在则需要去创建它,假设已有路径 D:\work 。 1.保存一个文件到 D:\work\test 路径下 检查路径代码可以这么写: CString strPathPre = _T("D:\\work\\test") if (!PathIsDirectory(strPathPre)){ CreateDirectory(st

不经一番寒彻骨,怎得梅花扑鼻香。 658

从零开始掌握RDMA拥塞控制:原理、算法与实战解析

本文深入解析了RDMA拥塞控制的核心原理与实战配置。RDMA依赖无损网络保障高性能,其关键在于PFC与ECN两大技术协同防止丢包。文章重点剖析了主流算法DCQCN的工作机制与参数调优,并简要介绍了HPCC与TIMELY等前沿算法。最后提供了在Linux上配置RoCEv2与DCQCN的详细步骤及性能调试方法,帮助读者从零构建稳定的RDMA网络环境。

weixin_28452161的博客 135

【论文阅读笔记】One Shot 3D Photography

论文主页:https://facebookresearch.github.io/one_shot_3d_photography/ 代码地址:https://github.com/facebookresearch/one_shot_3d_photography   该3D照片方向,由于刚入门,所以会倾向于翻译文章。每个操作上的选择,及为什么不进行另外操作的原因都如数放上。 论文小结   本作的工作是从单张RGB图片生成一个移动视角的3D照片。   其管道大致如下: 由RGB图像通过单目深度估计网络估计深度图

时光机 °的博客 1839

Windows窗口类样式:CS_DBLCLKS

窗口类样式:CS_DBLCLKS CS_DBLCLKS标志使窗口可以检测到双击事件。窗口响应双击的细节如下: 如果窗口没有CS_DBLCLKS标志,系统向窗口依次发送如下消息: WM_LBUTTONDOWN WM_LBUTTONUP WM_LBUTTONDOWN WM_LBUTTONUP. 其实相当于两个单击。 如果窗口有CS_DBLCLKS标志,则系统向窗口依次发送如

飞信天下专栏 6005

(一)企业微信 - 会话内容存档

企业微信获取会话记录。

专打丶小豆豆的博客 2890

VC中CreateProcess函数用法

1.函数说明: WIN32API函数CreateProcess用来创建一个新的进程和它的主线程,这个新进程运行指定的可执行文件。 2.函数原型:BOOL CreateProcess( LPCTSTR lpApplicationName, LPTSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProce...

weixin_30266829的博客 409

【gcc】跨版本兼容实战:高版本编译程序在低版本glibc环境下的部署方案

本文针对高版本gcc编译的程序在低版本glibc环境下部署的兼容性问题,提供了四种实战解决方案:静态编译的局限性、容器化部署的优雅方案、使用Devtoolset工具链的官方支持,以及最通用灵活的打包依赖SO发布方案。重点剖析了通过设置RPATH和Interpreter或使用patchelf工具,实现程序与自带库的独立部署,有效解决glibc版本鸿沟。

weixin_29237635的博客 362

T113-S3-RTL8211网口phy芯片调试

在嵌入式系统开发中,网络连接是至关重要的一部分。T113-S3开发板搭载了RTL8211系列的网口PHY芯片,用于实现以太网连接。在开发过程中,对于网口的稳定性和性能的调试至关重要。本篇博客将介绍如何调试T113-S3开发板中的RTL8211网口PHY芯片,以确保网络连接的正常工作。

flypig has a dream! 4614

HC小区管理系统与VC框架--父子组件传值、官方文档(修改添加中)

HC小区管理系统与VC框架--页面解释、父子组件传值(修改添加中)

qq_42092195的博客 901

课题申报新手入门必备指南!利用AI辅助搞定 6大关键部分,高效提升申报成功率(附AI提示词)

以下是我(或团队)与本课题相关的已有基础:【如:承担过的公开课、校本教研活动、教学改革实践、课程建设、区级/校级课题、教学反思积累等】请你完成以下任务:1)判断哪些内容与本课题的研究目标和内容具有直接或间接关联;以下是我当前的研究设想(可能比较笼统):【填写你的研究想法 / 教学困惑 / 初步设想】,请你帮我完成以下任务:1)先判断该设想中隐含的核心研究问题是什么;以下是我目前拟定的研究目标,请你从课题评审视角进行校正:【逐条粘贴你已有的研究目标】,请你帮我:1)判断每个目标是否具体、清晰、可评估;

智能AI让学术科研更容易 917

完美开始菜单的软件设计(VC)

                        类WindowXp (CYisongStartMenu)开始菜单 编程指南[VC]                                                      □   深圳远客 (song_0962@sina.com)                                              

深圳软客 的专栏 6443

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

怀旧版电脑GBC模拟器

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

学VC还是从SDK开始的好

学过一段时间的VC了,SDK也精略地看过,后来转向学习MFC,也看过候俊杰的〈深入浅出MFC〉也研究过李久进(http://www.vczx.com/tutorial/mfc/mfc.php)的MFC学习。进展不大。反过来还是先学透SDK的好

coppersmith的专栏 616

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

VC2010中显示开始运行(不调试)快捷按钮

2015年3月24日22:43:15 新安装的VC2010中,没有 开始运行(不调试)快捷按钮,对于我这种习惯了鼠标点点 就运行程序的人,有点不爽。 自己查找了下,发现可以添加到工具栏上。 方法:     1.连编译快捷按钮都没的,可以在工具栏上点击右键,在弹出的框里找到“生成”,打钩即可。     2.点击生成的这个框的右下角的三角形,在弹出的添加或移除按钮里,选择“自定义”。

PYWZJ的专栏 1万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

开始VC6学习之旅

本周开始VC6学习之旅,加油!

风来风云 455

今天开始研究用VC开发ocx

<br />很久以前搞过VC,有一定的Windows SDk以及MFC的基础。<br />但从没写过ocx。<br />不得不从头找资料看了,优快云上关于如何开发ocx的资料不多嘛。<br /> <br />现在漫天飞的是J2EE,真正懂C、C++的程序员没几个了。

y2kiss的专栏 275

今天下载了一堆VC6的教材,正式开始了

今天下载了一堆VC6的教材,还下载了一个华康阅读器.exe,和一个NLC电子图书格式阅读器.exe 已经开始学习了,没人陪我看书,只好劳驾博客了,哈哈。  wizard 精灵 在VC++里有个词Wizardbar,估计是一种工具条一类的小东西吧...

wmnmtm的专栏 187

我的VC历程开始启动

最近,和老师一起做一个项目,要用VC 写,以前自己不是读软件的,现在学起来有点困难,不过不要紧,漫漫来吗! 

lsenlee的专栏 343

开始VC

这几天要写好一个上位机的程序,因为之前的VC只停留在理论阶段,所以今天写的时候感觉困难重重,还好有MSDN+网络,碰到的问题都能解决,只是会耗费时间长一点,知识是靠慢慢积累的,没关系,干活的时候做个记录,常翻阅,多思考,这次一定要搞定VC,会一种上位机编程可以给工作带来很大的方便的。 转载于:https://www.cnblogs.com/daqiang/archive/2011/12...

diaosancuo8156的博客 134

创业者刚开始你需要VC吗

<br />在围脖上,你会看到创业者像没断奶的孩子,天天讨好VC等人的围脖,我想这帮所谓的创业者,你们内心非常地不自信,不自信自己的能力和所做的事情,需要得到VC们的指点,资源,钱;按我说,真正的创业者,如果你不是阳痿的话,你就踏实、安稳、坚挺地做自己的事业,至少成事之前你是不需要VC的。<br /> <br />近日配图:<br /> 

抢财猫股票课堂 1838

开始学习VC

1、VC单文档的4个主要的类文档类 (CDocument)负责程序数据的读取、写入和存储;视图类 (CView)负责处理用户输入和管理视图窗口,显示程序数据;主框架类 (CMainFrame) 负责管理主程序窗口。应用程序类 (CWinApp) 管理整个程序。 2、视图类如何从文档类获取数据?CxxxDoc *pDoc = GetDocument(); //获取文档类指

生亦何欢,死亦何苦? 691

软件开发为什么我的VC中显示二维数组从a[-1][]开始???

软件开发为什么我的VC中显示二维数组从a[-1][]开始??? 正在上传…重新上传取消​图片说明 软件开发为什么我的VC中显示二维数组从a[-1][]开始??? 搞不懂,不是应该从a[0][]开始么? 最佳答案: 专家已采纳 float xyz[][1] = {{1.0},{2.0},{3.0}}; for (int i = 0;i < 3;i ++) { printf("%f\r\n",xyz[i][0]); } 文章来源:htt

124

VC开始抢大学生

当参与过《黑神话:悟空》的前期制作、却被问到致谢信中为什么没有团队名字时,伏羲科技创始人韩普宇平静地回答:“今天站在这个舞台上,我更想带上那群人——那群可能没有机会出现在致谢名单里,无法以一个又一个名字表现出对中华文化遗产贡献的人,我和他们站在一起,把这个故事讲给更多的人听。在一众高学历中,22岁的查子涵是少见的大专学生,高考失利,他却在几年专业学习里找到了一个行业痛点:列车检修群体的困境,并以此为灵感做出了AR检修眼镜,打破学历偏见,高喊出那句让全场沸腾的话:“如果我可以,那你们也一定可以”。

具身机器人和通用AI 1119

开始正式学习VC

不是转变编程方向,但是今天开始正式学习。

731
下一篇: 深入GetMessage和PeekMessage
fireseed
博客等级 码龄25年 89粉丝 41原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值