精华内容
参与话题
问答
  • Windows编程

    千次阅读 2019-01-08 22:38:24
    在进行PC程序开发的时候,我大多数首选的是Qt,但是Windows编程也很重要。下面就介绍下Windows编程的主要概念 Windows编程的主要概念 句柄 一个句柄值是指使用的一个欸一的整数值,即一个4字节(64位程序中位8...

    引言

    在进行PC程序开发的时候,我大多数首选的是Qt,但是Windows编程也很重要。下面就介绍下Windows编程的主要概念

    Windows编程的主要概念

    句柄

    一个句柄值是指使用的一个唯一的整数值,即一个4字节(64位程序中位8字节)长度的数值,来便是应用程序中的不同对象和同类对象中的不同实例。MFC中没建立一个窗口,这个窗口就会有一个窗口句柄来唯一标识它。
    但是句柄不是一个指针。

    句柄和指针之间的区别

    • 首先,指针指向系统中物理内存的地址,而句柄是windows在内存中维护的一个对象内存物理地址列表的整数索引,句柄是一种指向指针的指针。

    使用句柄的原因

    • 在windows系统中的内存管理一般会将当前处于空闲状态的对象的内存释放掉,当需要访问的时候再重新提交分配物理内存,从而导致对象的物理地址是变化的,这样就不允许系统直接通过指针来访问(物理地址不断变化)的对象。

    句柄的功能

    • 句柄是一种指向指针的指针。由于windows是一种以虚拟内存为基础的操作系统,其内存管理器经常会在内存中来回的移动对象,以此来满足各种应用程序对内存的需求。而对象的移动意味着对象内存地址的变化,正是因为如此,如果直接使用指针,在内存地址被改变后,系统将不知道到哪里去再调用这个对象。
    • windows系统为了解决这个问题,系统专门为各种应用程序腾出了一定的内存地址(句柄)专门用来记录这些变化的地址(这些内存地址就是指向指针的指针),这些内存地址本身是一直不变化的。windows内存管理器在移动某些对象之后,他会将这些对象新的内存地址传给句柄,告诉他移动后对象去了哪里。

    句柄(稳定的)---->记载着对象在内存中的地址---->对象在内存中的地址(不稳定的)---->记载着实际对象的地址。

    在这里插入图片描述

    图中实线表示初始化的情况,虚线表示在内存管理器处理之后的情况

    事件与消息

    事件(Event)是用户操作应用程序产生的动作或者Windows系统自身所长生的动作。
    消息(Message)就是告诉应用某i个事件触发了。

    消息队列与消息循环

    当一个事件发生时,Windows会为应用程序发送一条消息,并在该应用程序的消息队列中增加一条消息。该消息队列只是一个保存可应用程序所接收到的消息的优先队列。
    应用程序在一个消息循环中不断的检查消息队列,当收到一条消息时,便将其分派给接收该消息的特定窗口的过程。

    回调函数

    回调函数就是一个通过函数指针调用的函数。
    如果把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们便说这既是回调函数。
    回调函数不是由该函数的实现方法直接调用,而是在特定的条件或事件发生时,由另一方调用,用于对该事件或条件进行响应。

    展开全文
  • windows编程之Windows Shell 编程

    千次阅读 2017-04-11 16:26:38
    这里仅仅是记录下该资源,推荐到下文列出的连接进行... 看过一些对windows 外壳的扩展程序,在使用上一般都是直接利用windows的外壳API做一些工作,因为外壳操作需要一些比较专业的知识,因此,大部分编程人员特别是

    这里仅仅是记录下该资源,推荐到下文列出的连接进行查看

    用VC++ 进行Windows Shell 扩展编成
                  由ccc编译
     
    序言:
           看过一些对windows 外壳的扩展程序,在使用上一般都是直接利用windows的外壳API做一些工作,因为外壳操作需要一些比较专业的知识,因此,大部分编程人员特别是使用集成编程环境的程序人员对windows shell的扩展编程不很了解,也缺乏这方面的资料。
           在做过一些程序之后,感觉到使用windows shell的扩展编程可以使程序与操作系统的结合更加紧密,就好像应用程序已经融入到操作系统之中一样。在使用windows shell扩张编程工具的过程中深切体会到windows shell技术资料的重要性,为此,根据Dino Esposito的《Visual C++ Windows Shell Programming》为蓝本,编译形成以下文字,为希望使用windows shell编程的人员提供一点帮助。
           编译过程可能会出现错误,希望朋友们指正,请Email联系:ch2zh1@tom.com。本人将不胜感激。




    Windows Shell 编程

    http://blog.csdn.net/chchzh/article/details/2210729

    Windows Shell 编程 第一章 Windows Shell是什么

    http://blog.csdn.net/chchzh/article/details/2211475

    Windows Shell 编程 第二章 Shell的结构

    http://blog.csdn.net/chchzh/article/details/2222622

    Windows Shell 编程 第三章 操作文件

    http://blog.csdn.net/chchzh/article/details/2233634

    深入讨论了一个函数SHFileOperation(),对它的每一个方面都作了彻底地测试了。从拷贝,移动,重命名或删除文件,以及设置标志改变函数行为开始,然后展开了对某些未写进资料的返回码,Bugs,函数缺陷的讨论。概括地讲,在这一章中,给出了:

        怎样编程SHFileOperation()

        最普遍的编程错。

        这个函数在资料方面的短缺

        怎样利用文件名映射的优点


    Windows Shell 编程 第四章 文件的本质

    http://blog.csdn.net/chchzh/article/details/2246694

                       怎样取得相关于给定文件或文件夹的各种图标

                       怎样知道可执行文件(EXE)的二进制格式

                       怎样确定给定文件或文件夹可能具有的系统属性

                       怎样使用图像列表合并两个图标,不用XOR修饰与设备关联操作


    Windows Shell 编程 第五章 浏览文件夹

    http://blog.csdn.net/chchzh/article/details/2276849



    Windows Shell 扩展编程 第十五章 


    http://blog.csdn.net/chchzh/article/details/4597866



    展开全文
  • 这一章开篇语对我有很大的启迪,一直对Windows下编程有着畏难心理。...而现在受到这本书的启发,对Windows编程 的畏惧少了一些,也有了一些学习计划: 1.窗体界面 -> Win32\MFC (简单了解界面消息处理机制吧


    这一章开篇语对我有很大的启迪,一直对Windows下编程有着畏难心理。太庞大的平台和体系,
    太多的API和术语,太快的技术换代节奏,而我是个想要把握住本质掌握住基础才会有安全感
    和成就感的程序员,所以我只乐于学习Win32 API。而现在受到这本书的启发,对Windows编程
    的畏惧少了一些,也有了一些学习计划:

    1.窗体界面 -> Win32\MFC (简单了解界面消息处理机制吧,实在是不擅长画UI,MFC也有些难)
    2.网络编程 -> Winsock (这是我比较想学的)
    3.Web控件 -> ActiveX (不了解,应该学学)
    4.动画游戏 -> GDI\DirectX (感兴趣,想写点小游戏自娱自乐)

    所以我觉得写个小游戏作为业余项目是很不错的,游戏部分可以学学DirectX,设置界面可以简单
    学习下MFC,然后再给游戏增加个网络对战功能就可以学到Winsock了。业余项目关键是不要追求
    完美,先把基本功能完成,基础框架搭好。曾经想用Java2D写个塔防游戏,就是太想一下子就写好,
    于是就半途而废了。

    ========================================================

    Windows编程就像去见牙医:虽然明明知道对自己是有益处的,可还是没人喜欢总是找牙医。
    虽然我不能保证在阅读本章之后你会变得更加喜欢去见牙医,但是我敢保证你会比以往更喜欢
    Windows编程。别因为我要解放你的思想而感到害怕(特别是钟情于DOS的顽固分子)。


    Windows的起源

    Windows 1.0完全建立在DOS基础上,不能执行多任务,运行缓慢。Windows 3.0让开发人员和
    商业应用程序逐渐脱离DOS。但游戏编程的人们还在唱着“坚守DOS岗位直到炼狱冻结”的赞歌。
    Windows 95推出后,我才真正开始喜欢Windows编程。

    Windows 9X/NT是多任务、多线程的,这和DOS有很大不同。DOS下,一旦你的程序开始运行,
    就只能运行该程序(中断处理程序除外)。要想多线程就必须自己模拟,这也是游戏程序员多年
    来所做的事。

    Windows还是一个事件驱动的操作系统。我们不必关心其他正在运行的应用程序,Windows会去处理,
    我们只要关心自己的应用程序中信息的处理。这在Windows 3.0/3.1中是不可能的,它们并不是真正的
    多任务系统,每一个应用程序都要产生下一个程序。



    匈牙利符号表示法

    像微软一样的公司,有几千个程序员在干不同的项目,一个名叫Simonyi的人负责创建了一套
    编写微软代码的规范。所有微软的API、界面、技术文件等等都采用这些规范。这个规范被称为
    匈牙利符号表示法,也许因为他经常加班弄得饥肠辘辘吧(饥饿Hungry和匈牙利Hungary)。



    1.变量:根据变量类型采用不同的前缀,之后的每个子名都要以大写字母开头。如char *szFileName;
              全局变量还要在开头加上g_或g,如int g_iXPos;

    2.函数:与变量相同,但没有前缀。如int PlotPixel(int ix, int iy, int ic);

    3.类型和常量:所有字母大写,子名可以用下划线分隔。如#define MAX_CELLS 64

    4.类:所有C++的类以大写C为前缀,其余与变量相同。如class CVector { ... };

    5.参数:与变量命名相同,如GetPixel(int ix, int iy); 但GetPixel(int x, int y);也是可以的。

    学会阅读匈牙利符号表示法但不代表要改变你自己的编程风格。本书在使用Win32 API函数的场合
    使用匈牙利表示法,而在其他位置使用自己的风格。


    世界上最简单的Windows程序

    基于DOS的“Hello World”程序。注意:要用VC创建一个控制台应用程序,
    这是类DOS的应用程序,只是它是32位的。将目标.EXE设为控制台应用
    程序,而非Win32.EXE!

    #include <stdio.h>
    
    void main(void)
    {
         printf("\nTHERE CAN BE ONLY ONE!!!\n");
    }

    Windows程序都以WinMain()开始,就像DOS都以main()开始一样。

    #define WIN32_LEAN_AND_MEAN
    
    #include <windows.h>
    #include <windowsx.h>
    
    int WINAPI WinMain(HINSTANCE hInstance,
                           HINSTANCE hPrevInstance,
                           LPSTR lpCmdLine,
                           int nShowCmd)
    {
         MessageBox(NULL, "THERE CAN BE ONLY ONE!!!",
              "MY FIRST WINDOWS PROGRAM",
              MB_OK | MB_ICONEXCLAMATION);
         return (0);
    }


    现实中的Windows程序

    我们所需的只是一个基本的Windows程序,打开一个窗口、处理信息、调用游戏主循环等。
    因此只要进行下列工作:
         1. 创建Windows类。
         2. 创建事件句柄。
         3. 注册Windows类。
         4. 用之前的Windows类创建一个窗口。
         5. 创建一个能够从事件句柄获得或向事件句柄传递信息的主循环。

    1.创建Windows类

    Windows中的每一个窗口、控件、列表框、对话框和小部件都是一个Windows类。你也可以
    自定义Windows类,你编写的每一个应用程序都应该至少有一个Windows类,否则会非常麻
    烦。控制Windows类的数据结构是:WNDCLASSEX。创建Windows类就是设置好它的各种属性。

    WNDCLASSEX winclass = {
              sizeof(WNDCLASSEX),
              CS_DBLCLKS | CS_OWNDC | CS_HREDRAW | CS_VREDRAW,
              WindowsProc,
              0,
              0,
              hInst,
              LoadIcon(NULL, IDI_APPLICATION),
              LoadCursor(NULL, IDC_ARROW),
              (HBRUSH) GetStockObject(BLACK_BRUSH),
              NULL,
              "WINCLASS1",
              LoadIcon(NULL, IDI_APPLICATION)
         };

    2.事件句柄

    由上图看到一个重要的属性 - 回调函数,它是通过lpfnWndProc设定。
    来看一个事件处理函数的例子,在这里我们只关心WM_CREATE\PAINT\DESTROY三个事件。

    LRESULT CALLBACK WindowsProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
         HDC hdc ;
         PAINTSTRUCT ps ;
         RECT rect ;
         switch (message)
         {
              case WM_CREATE:               
                   return 0 ;
              case WM_PAINT:
                   hdc = BeginPaint (hwnd, &ps) ;               
                   EndPaint (hwnd, &ps) ;
                   return 0 ;
              case WM_DESTROY:
                   PostQuitMessage (0) ;
                   return 0 ;
         }
         return DefWindowProc (hwnd, message, wParam, lParam) ;
    }

    3.注册Windows类

    很简单只需一行代码:RegisterClassEx(&winclass);
    还有一个旧版本的RegisterClass()用于注册基于旧结构WNDCLASS类。
    一旦注册就可以任意创建它的窗口了。

    4.创建窗口

         hwnd = CreateWindowEx(
                             NULL,                         // extended style
                            "WINCLASS1",               // class
                             "Your Basic Window",     // title
                            WS_OVERLAPPEDWINDOW | WS_VISIBLE,
                            0, 0, 400, 400,               // initial x/y/width/height
                            NULL,                         // parent window handle
                            NULL,                         // window menu handle
                            hInst,                         // program instance handle
                            NULL);                         // creation parameters

    如果上面没有设置WS_VISIBLE则需要手动调用ShowWindow来让窗口显示。
    调用UpdateWindow触发WM_PAINT事件。
    ShowWindow (hwnd, iCmdShow) ;
    UpdateWindow (hwnd) ;

    5.主事件循环

    while (GetMessage (&msg, NULL, 0, 0))
    {
         TranslateMessage (&msg) ;
         DispatchMessage (&msg) ;
    }

    非常简单。GetMessage是关键,用途是从事件队列中获得消息,保存到MSG结构中。
    MSG结构包含了WinProc参数列表中的所有参数,之后调用TranslateMessage稍加处理
    和转换,并通过DispatchMessage调用WinProc进行进一步处理。

    一个给力的图示,包含了所有事件处理流程!



    ==============================================

    2012年4月22日 更新

    1.创建WNDCLASSEX时指定了类名为"WINCLASS1",之后注册它,并在创建窗体时指定了类名"WINCLASS1",
    所以就会关联到WNDCLASSEX,并创建出它指定样式大小的窗体。而在创建其他预定义控件时,如按钮控件,
    "button"类已经预定义并注册了,我们只需在调用CreateWindowEx指定类名为"button"。

    2.GetMessage()和PeekMessage()的区别:它们都是从消息队列中取消息。当消息队列中没有消息时,GetMessage()
    会阻塞当前线程,而PeekMessage()直接返回不会阻塞。并且PeekMessage()只取消息不从队列中删除,取出并删除
    消息需要指定PM_REMOVE参数:PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)。

    3.MSG结构:
         typedef struct tagMSG {
              HWND hwnd;          // window where message occurred
              UINT message;       // message id itself
              WPARAM wParam;   // sub qualifies message
              LPARAM lParam;      // sub qualifies message  
              DWORD time;          // time of message event
              POINT pt;              // position of mouse
         } MSG;

    MSG结构的前四个成员变量正是WinProc函数的四个参数。验证了WinMain主循环中GetMessage()取到MSG结构后,
    调用DispatchMessage()从MSG中取出参数并触发WinProc进行进一步处理。

    4.wParam和lParam在不同的消息中会保存不同的值。在按钮控件的消息中,msg为WM_COMMAND,LOWORD(wParam)
    为子窗口ID(创建按钮时指定),HIWORD(wParam)为通知码(1 - BN_CLICKED,2 - BN_DOUBLECLICKED),lParam为
    子窗口句柄。


    展开全文
  • 之前博客《谷歌C++编程规范笔记》整理了一些关于C++ Style方面的东西,看的是中文版本的。但是今天翻阅英文版本的,在最后,发现了 Google C++ Style 关于windows的。Windows programmers have developed their own ...

    之前博客《谷歌C++编程规范笔记》整理了一些关于C++ Style方面的东西,看的是中文版本的。

    但是今天翻阅英文版本的,在最后,发现了 Google C++ Style 关于windows的。

    Windows programmers have developed their own set of coding conventions, mainly derived from the conventions in Windows headers and other Microsoft code.

    We want to make it easy for anyone to understand your code, so we have a single set of guidelines for everyone writing C++ on any platform.

    It is worth reiterating a few of the guidelines that you might forget if you are used to the prevalent Windows style:

    Do not use Hungarian notation (for example, naming an integer iNum).
    不要使用匈牙利命名法

    Use the Google naming conventions, including the .cc extension for source files.
    使用Google的命名规则,包括使用.cc后缀命名源文件

    Windows defines many of its own synonyms for primitive types, such as DWORD, HANDLE, etc.
    It is perfectly acceptable, and encouraged, that you use these types when calling Windows API functions.
    可以使用windows定义的符号,如DWORD HANDLE等

    Even so, keep as close as you can to the underlying C++ types. For example, use const TCHAR * instead of LPCTSTR.
    使用const TCHAR*代替LPCTSTR

    When compiling with Microsoft Visual C++, set the compiler to warning level 3 or higher, and treat all warnings as errors.
    把警告当做错误来处理

    Do not use #pragma once; instead use the standard Google include guards. The path in the include guards should be relative to the top of your project tree.
    In fact, do not use any nonstandard extensions, like #pragma and __declspec, unless you absolutely must.
    Using __declspec(dllimport) and __declspec(dllexport) is allowed;
    however, you must use them through macros such as DLLIMPORT and DLLEXPORT, so that someone can easily disable the extensions if they share the code.
    不要使用#pragma;可以使用__declspec(dllimport)和__declspec(dllexport),但是必须通过定义成宏来使用DLLIMPORT and DLLEXPORT

    However, there are just a few rules that we occasionally need to break on Windows:

    Normally we forbid the use of multiple implementation inheritance; however, it is required when using COM and some ATL/WTL classes.
    正常情况下我们是禁止多重继承的,但是对于COM和一些ATL/WTL类,如果需要可以采用多重继承。

    You may use multiple implementation inheritance to implement COM or ATL/WTL classes and interfaces.

    Although you should not use exceptions in your own code, they are used extensively in the ATL and some STLs, including the one that comes with Visual C++.
    When using the ATL, you should define _ATL_NO_EXCEPTIONS to disable exceptions.

    You should investigate whether you can also disable exceptions in your STL, but if not, it is OK to turn on exceptions in the compiler.
    (Note that this is only to get the STL to compile. You should still not write exception handling code yourself.)

    The usual way of working with precompiled headers is to include a header file at the top of each source file, typically with a name like StdAfx.h or precompile.h.
    使用预编译的话,包含的头文件要放在头文件的最前头。

    To make your code easier to share with other projects, avoid including this file explicitly (except in precompile.cc), and use the /FI compiler option to include the file automatically.

    Resource headers, which are usually named resource.h and contain only macros, do not need to conform to these style guidelines.
    资源文件可以命名为resource.h,并且只能定义一些宏。

    展开全文
  • Windows编程初步

    千次阅读 2005-03-29 10:19:00
    Windows编程初步 目前来说Windows已经家喻户晓,它的历史是Microsoft历史上最辉煌的一页.人们现在已经基本上使用Windows操作系统,因此在编程方面我们有必要从DOS环境编程向Windows编程转变.本文将向大家介绍Windows...
  • Windows编程模型

    千次阅读 2012-12-21 12:42:59
    今天在网上看到这个图片觉得挺好的,分享下: 再简单的放一个最基本的win32程序吧: #include #include ...LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);...
  • windows编程入门

    2019-02-14 22:26:11
    记录一下windows编程编写一个消息框,算是学习windows编程的入门级程序吧 以下代码来自:《windows游戏编程大师技巧(第二版)》 #include&amp;lt;Windows.h&amp;gt; #include&amp;lt;windowsx.h&...
  • windows编程1

    千次阅读 2007-07-04 22:44:00
    我在一本编程的书里看到开篇的一个例子:#includeint WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevious,LPSTR lpCmdString,int CmdShow){ return(1);}这就是一个windows程序,比"Hello Wo
  • 贪吃蛇详解Windows编程(一)

    千次阅读 2015-12-27 14:23:48
    贪吃蛇可以用很多种语言写,但是基本的思路都是一样的,在这里我就用C/C++写,但不是纯C或者纯C++写,因为那样太没效率了,用Windows封装的API写会节省很多代码而且是有界面的。既然是详解,所以一篇文章肯定讲不完...
  • Windows编程特点

    千次阅读 2014-06-24 23:20:35
    一个完整的Windows应用程序除了WinMain函数外,还包含用于处理用户动作和窗口消息的窗口函数。这不同于一个C++控制台应用程序,可以将整个程序包含在main函数中。当然,他们的区别还远不止这些。一个Windows应用程序...
  • windows 编程 新手问题

    2014-04-21 14:58:13
    最近刚开始看windows 自学 就是想了解下,书中helloworld程序先注册了一个窗口类,然后写了一个窗口对象,再然后是消息的循环, 可是我没看懂窗口对象是怎么知道自己是属于这个窗口类的,并没有把窗口类的值赋...
  • 新手学习windows编程之路

    千次阅读 2012-11-17 21:20:02
    windows程序设计,自然C/C++是不二之选,windows的API函数都是C的形式。一种方法是纯C语言&winAPI,另一种是C++&MFC。前者就称作SDK编程,后者就称作MFC编程吧。SDK编程在做大的程序项目时会显得很繁琐,而MFC封装...
  • 如何调用API实现WINDOWS编程

    千次阅读 2009-12-28 22:03:00
    我们目前经常说的调用API编程中的API,全称是Application Programming Interface . Windows给我们提供的API可以分为两种,16位的API和32位的API,经常写为Win16 API和Win32 API。主要是针对CPU的位数才有的16位和32...
  • 如何学习Windows编程

    万次阅读 多人点赞 2013-07-20 01:57:11
    有很多初入门的小朋友跟我说,他们想学“底层”的技术,因为觉得技术含量高,所以想学Windows C++开发,看着调用一个个的参数超级多,调用起来超级麻烦的Windows API,觉着很酷。于是我念头一转,就有了这篇文章,...
  • 最近在学WINDOWS编程,刚学了怎么处理键盘消息和资源这一部分,我导入了一个图标 希望通过按动“->”键来移动图标,我用DrawIcon函数来画这个图标,然后再按动“->" 键,相应的位置又会出现一个相同的图标,但是...
  • 1`. 问MainFrm,CDocument和CView类之间的关系, MainFrm为框架类,包含应用程序外框所包含部分。CView为视图类,用于显示数据的空白区域窗口。 CDocument为文档类。 MFC提供了文档/视类结构,采用数据本身和显示分离...
  • 历时一年多, 终于相对认真且完整地把Bob Quinn和Dave Shuttle的名著Windows Sockets 这本书学了一遍(实际上有的章节学过好几遍), 受益较多。 以后就把这本书当做自己案头参考书, 有空的时候, 要随时再阅读一些...
  • windows编程经典书籍

    万次阅读 热门讨论 2009-02-18 13:30:00
    本人是刚刚开始学习windows编程的,感觉看雪学院的大牛很NB.想找一些书籍来看学习学习,可是不知道看哪些书好.驱动,对菜鸟们来说真是一个很深奥的话题,所以 ,我找来了这篇文章供大家分享,以后大家发现什么好书就在楼下...
  • Windows编程的sdk编程浅谈

    千次阅读 2018-06-24 10:45:28
    什么是Windows SDK SDK即software develope kit(软件开发工具包),它包含了进行Windows软件开发的文档和API函数的输入库、头文件(因为API在动态链接库中,这些动态链接库是系统的组成部分因此不用再提供,而...
  • windows编程学习感悟

    千次阅读 2020-08-23 17:54:37
    windows编程学习感悟开始学习系统设计安全方向生态未来推荐 ps:这是一个感悟blog,为想学windows编程的提供一点方向,也是对自己看了一个暑假的windows书籍的一个小总结。 开始 先说一下博主的知识积累,博主是高三...
  • Windows编程经典书籍

    千次阅读 2018-11-28 15:40:07
    本人是刚刚开始学习windows编程的,感觉看雪学院的大牛很NB.想找一些书籍来看学习学习,可是不知道看哪些书好.驱动,对菜鸟们来说真是一个很深奥的话题,所以 ,我找来了这篇文章供大家分享,以后大家发现什么好书就在楼下...
  • windows 编程入门资料

    千次阅读 2018-05-30 13:48:03
    资料1 ...《Windows高级编程指南》是1999年清华大学出版社出版的图书,译者是王书洪 / 刘光明,目前出已经出第三版。 第0章 绪论  0.1 关于应用程序范例  0.1.1 用c语言编写程序  0.1.2 message ...
  • windows编程,中文乱码

    2016-08-11 09:12:15
    我使用Unicode编码还是多字节字符编码都会出现乱码,只有中文出问题,英文没事。 ![图片说明]...我只有画线实例四个字,后边那串我都不知道咋出来的,求解决,谢谢各位啦
  • windows中,如何对文件进行读写操作,是使用writefile函数吗?
  • Windows编程MessageBox函数

    千次阅读 2014-04-29 22:36:02
    API: int MessageBox(HWND hWnd, LPCTSTRlpText, LPCTSTRlpCaption, UINTuType); MSDN描述: This function creates, displays, and operates a message box. The message box contains an application-
  • windows编程 基本框架

    千次阅读 2009-03-21 10:31:00
    Author hjjdebug Date 2009-3-21 07:58上午 ; --------------------------------------------------------------------------- 该贴叫什么题目呢? windows 编程最基础问题?...windows编程 基本框架? 就...
  • Windows编程中Palette有什么作用?? 为什么我创建了灰度色调调色板还是可以输出其他颜色的字? 还请大神们帮忙解释一下Windows逻辑调色板的作用和用法哈

空空如也

1 2 3 4 5 ... 20
收藏数 55,209
精华内容 22,083
关键字:

windows编程