一、下载DX装起来:http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=6812

二、创建一个Win32窗口程序,空的,创建一个cpp文件,把项目属性配置一下,主要就是连接的静态库设置一下,要连接的静态库如下
          d3d9.lib    
          d3dcompiler.lib     --HLSL编译器
          DxErr.lib               --错误库
          dxguid.lib          --定义了Direct3D中所需要的GUID,即COM需要引用的
其它的,像DX的动态库、运行库、运行目录,在安装DX SDK的时候就已经设置好了,可以在选项里面看到

三、把下面的代码贴上去,编译运行,OK

#include <Windows.h>
#include <d3d9.h>
#include <d3dx9.h>IDirect3D9 *g_pD3D;  // D3D对象
IDirect3DDevice9 *g_pd3dDevice;   // D3D设备LRESULT WINAPI MsgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
void Render();
void Cleanup();INT WINAPI WinMain( __in HINSTANCE hInstance, __in_opt HINSTANCE hPrevInstance, __in_opt LPSTR lpCmdLine, __in int nShowCmd )
{// step 1.WNDCLASSEX wc = {sizeof(WNDCLASSEX),CS_CLASSDC,MsgProc,0L, 0L,GetModuleHandle(NULL),NULL, NULL, NULL, NULL,"Direct3D Frame", NULL };RegisterClassEx(&wc);HWND hWnd = CreateWindow("Direct3D Frame","Direct3D BaseFrame",WS_OVERLAPPEDWINDOW, 100, 100, 300, 300,GetDesktopWindow(), NULL, wc.hInstance, NULL);ShowWindow(hWnd, nShowCmd);// step 2.if (NULL == (g_pD3D = Direct3DCreate9(D3D_SDK_VERSION))){return E_FAIL;}D3DPRESENT_PARAMETERS d3dpp;ZeroMemory(&d3dpp, sizeof(d3dpp));d3dpp.Windowed = TRUE;d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;d3dpp.BackBufferFormat = D3DFMT_UNKNOWN;if (FAILED(g_pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,D3DCREATE_SOFTWARE_VERTEXPROCESSING,&d3dpp, &g_pd3dDevice)));// step 3.MSG msg;while (GetMessage(&msg, NULL, 0, 0)){TranslateMessage(&msg);DispatchMessage(&msg);}
}LRESULT WINAPI MsgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{switch (msg){case WM_DESTROY:Cleanup();PostQuitMessage(0);return 0;case WM_PAINT:Render();ValidateRect(hWnd, NULL);return 0;}return DefWindowProc(hWnd, msg, wParam, lParam);
}void Render()
{g_pd3dDevice->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0,0,255), 1.0f, 0);g_pd3dDevice->BeginScene();// rendering of scene objects happens hereg_pd3dDevice->EndScene();g_pd3dDevice->Present(NULL, NULL, NULL, NULL);
}void Cleanup()
{if (g_pd3dDevice != NULL)g_pd3dDevice ->Release();if (g_pD3D != NULL)g_pD3D->Release();
}

熟悉Win32程序开发的一看就知道,在响应WM_PAINT消息的时候换成了调用Render()这个函数,在这个函数里面你就可以用DX"画"自己的东东了<^^>

最简单的DX窗口程序相关推荐

  1. 安装汇编环境,写一个最简单的窗口程序

    用汇编写一个窗口程序 1.安装汇编所需的环境 1.下载masm32 下载地址 可以安装到D:\masm32目录下 2.配置环境变量 include = D:\masm32\include lib = ...

  2. 基于C++实现一个支持简单交互绘图小程序

    资源下载地址:https://download.csdn.net/download/sheziqiong/86763967 资源下载地址:https://download.csdn.net/downl ...

  3. Windows下编译TensorFlow1.3 C++ library及创建一个简单的TensorFlow C++程序

    参考:https://www.cnblogs.com/jliangqiu2016/p/7642471.html Windows下编译TensorFlow1.3 C++ library及创建一个简单的T ...

  4. c# dialogresult 选择文件_C#实战037:一个简单的入门应用程序NXPlug install

    前面通过一系列的NX二次开发已经基本完成了项目对NX的需求了,接着就是将插件打包给用户使用了.使用过程很简单只要将文件拷贝至任意目录并添加环境变量UGII_USER_DIR即可,为了方便一般都会放在N ...

  5. python窗口程序-窗口程序python

    广告关闭 2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品.未来,我们一起乘风破浪,创造无限可能. 让 gui 程序启动和运行起来需要以下 5 个主要步骤:导入 tkint ...

  6. 按键精灵通过句柄获取窗口坐标_使用visual studio 2019 创建简单的Windows窗口「Win32」...

    今天Bili发现网上好多MFC代码都不能用,给大家分享一个简单的MFC窗口语言: 学的不仅仅是技术,更是梦想 学的不仅仅是技术,更是梦想 学的不仅仅是技术,更是梦想 学的不仅仅是技术,更是梦想 复制代 ...

  7. linux0.11学习笔记-技术铺垫-简单AB任务切换程序(1)-实现一个简单的bootloader

    直接看代码,即使已经理解了代码,但是还是会有种没有学到手的感觉.真正的掌握来自实践,来自己动手做出来."简单AB任务切换程序"系列文章的目的是,在bochs下,实践出简单AB两个任 ...

  8. hosts多个ip对应一个主机名_一个简单的Web应用程序,用作连接到ssh服务器的ssh客户端...

    WebSSH 一个简单的Web应用程序,用作连接到ssh服务器的ssh客户端.它是用Python编写的,基于tornado,paramiko和xterm.js. 特征 支持SSH密码验证,包括空密码. ...

  9. 使用Qt生成第一个窗口程序

    一.打开QtCreater,点击New Project 二.在Qt中,最常用的窗口程序为widgets控件程序,这里我们选择Qt Widgets Application 三.Qt生成的debug和re ...

最新文章

  1. 分类9个无理数并比较他们之间的分布差异
  2. mi2 android 5.0 方法,小米2/2S怎么刷Android5.0 小米2/2S刷Android5.0教程【详解】
  3. 四十、Linux和ViM的使用
  4. PyTorch 1.9发布!移动端疯狂更新
  5. CSS 背景尺寸 background-size属性
  6. trycatch处理流IO流中的异常
  7. mysql5.5编译安装_mysql5.5编译安装及配置
  8. sublime 添加 ConvertToUTF-8
  9. Atitit java播放器调音速率快慢的实现 目录 1.1. 原理 本质上是改变采样率即可 1 2. 使用Java增加/降低AudioInputStream的音频播放速度(Increase/dec
  10. 带你玩转 Visual Studio——带你跳出坑爹的 Runtime Library 坑
  11. 本科三级专业目录计算机类,大学本科专业目录
  12. [PHP] ubuntu16.04配置Lamp环境(搭建linux+apache+mysql+php7环境)
  13. c++在csv写入汉字_python-opencv表格识别转csv
  14. dom解析,解析xml文件
  15. 一步一步oa办公系统java,OA项目 一个OA办公系统的java源码 联合开发网 - pudn.com
  16. 技术达人博客网址大全
  17. [本地调试]Error: errCode: 40013 | errMsg: invalid appid, rid: 6229ba44-300699c6-69a0065e
  18. 分析:全球债市预警经济衰退风险 未来通胀预期大跌
  19. MySQL 数据库调优基本策略
  20. 使用Python+OpenCV+Dlib实现人脸检测与人脸特征关键点识别

热门文章

  1. python能爬取什么_5行代码就能写个爬虫,python真是太方便了!
  2. python 输入中文_【提醒】Python新手开发人员注意事项:不要误输入中文标点符号...
  3. c++ 多线程 垃圾回收器_新一代垃圾回收器ZGC的探索与实践
  4. TortoiseSVN修改服务器地址的方法
  5. R语言作图之ggplot2初识(1)
  6. java两个栈怎么完成初始化_Spring bean初始化及销毁你必须要掌握的回调方法
  7. ajax的url怎么将后缀补上_球形门锁怎么拆装?球形门锁安装的方法都包括哪些?
  8. python性能解决的事_Python程序的性能分析方法
  9. C语言:编写一个程序,输入用户的姓名和电话号码,按姓名的词典顺序排序后,输出用户的姓和电话号码;
  10. 计算机图形学用到哪些概率知识,图形学所需的数学知识