返回顶部
首页 > 资讯 > 精选 >VC中控制台程序创建窗口的方法是什么
  • 530
分享到

VC中控制台程序创建窗口的方法是什么

2023-06-21 23:06:21 530人浏览 泡泡鱼
摘要

本篇内容主要讲解“VC中控制台程序创建窗口的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“VC中控制台程序创建窗口的方法是什么”吧!在VC控制台程序中调用D3DVideoRender时

本篇内容主要讲解“VC中控制台程序创建窗口的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“VC中控制台程序创建窗口的方法是什么”吧!

在VC控制台程序中调用D3DVideoRender时,需要创建新的窗口控件显示图像

#include "windows.h"#include "TCHAR.h" //声明自定义消息处理函数LRESULT CALLBACK WindowProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam); int _tmain(int arGC, _TCHAR* argv[]){HINSTANCE hInstance;hInstance = GetModuleHandle(NULL);//获取一个应用程序或动态链接库的模块句柄WNDCLASS Render_WND;Render_WND.cbClsExtra = 0;Render_WND.cbWndExtra = 0;Render_WND.hCursor = LoadCursor(hInstance, IDC_ARROW);//鼠标风格Render_WND.hIcon = LoadIcon(hInstance, IDI_APPLICATioN);//图标风格Render_WND.lpszMenuName = NULL;//菜单名Render_WND.style = CS_HREDRAW | CS_VREDRAW;//窗口的风格Render_WND.hbrBackground = (HBRUSH)COLOR_WINDOW;//背景色Render_WND.lpfnWndProc = WindowProc;//【关键】采用自定义消息处理函数,也可以用默认的DefWindowProcRender_WND.lpszClassName = _T("RenderWindow");//【关键】该窗口类的名称Render_WND.hInstance = hInstance;//【关键】表示创建该窗口的程序的运行实体代号 ReGISterClass(&Render_WND); HWND hwnd = CreateWindow(_T("RenderWindow"),           //【关键】上面注册的类名lpszClassName,要完全一致  L"Zombie",  //窗口标题文字  WS_OVERLAPPEDWINDOW, //窗口外观样式  0,             //窗口相对于父级的X坐标  0,             //窗口相对于父级的Y坐标  320,                //窗口的宽度  240,                //窗口的高度  NULL,               //没有父窗口,为NULL  NULL,               //没有菜单,为NULL  hInstance,          //当前应用程序的实例句柄  NULL);              //没有附加数据,为NULL   //去标题栏SetWindowLong(hwnd, GWL_STYLE, GetWindowLong(hwnd, GWL_STYLE) & ~WS_CAPTION); //去边框SetWindowLong(hwnd, GWL_EXSTYLE, GetWindowLong(hwnd, GWL_EXSTYLE) & ~(WS_EX_WINDOWEDGE | WS_EX_DLGMODALFRAME)); // 显示窗口  ShowWindow(hwnd, SW_SHOW); // 更新窗口  UpdateWindow(hwnd); // 消息循环  MSG msg;while (GetMessage(&msg, NULL, 0, 0)){TranslateMessage(&msg);DispatchMessage(&msg);} return 0;}  // 自定义消息处理函数的实现LRESULT CALLBACK WindowProc(_In_  HWND hwnd,_In_  UINT uMsg,_In_  WPARAM wParam,_In_  LPARAM lParam){switch (uMsg){    case WM_DESTROY:    {PostQuitMessage(0);return 0;    } case WM_KEYDOWN:{if (wParam == VK_ESCAPE)//按Esc键退出{PostQuitMessage(0);return 0;}}}return DefWindowProc(hwnd, uMsg, wParam, lParam);}

实例扩展:

#include <iOStream>#include <Windows.h>using namespace std;LRESULT CALLBACK __WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) {PAINTSTRUCT ps;HDC hdc;switch (msg) {case WM_CLOSE:MessageBox(NULL,"WM_CLOSE", "", NULL);break;default:break;}return DefWindowProc(hWnd, msg, wParam, lParam);}int main(){// 窗口属性初始化HINSTANCE hIns = GetModuleHandle(0);WNDCLASSEX wc;wc.cbSize = sizeof(wc);// 定义结构大小wc.style = CS_HREDRAW | CS_VREDRAW;// 如果改变了客户区域的宽度或高度,则重新绘制整个窗口 wc.cbClsExtra = 0;// 窗口结构的附加字节数wc.cbWndExtra = 0;// 窗口实例的附加字节数wc.hInstance = hIns;// 本模块的实例句柄wc.hIcon = NULL;// 图标的句柄wc.hIconSm = NULL;// 和窗口类关联的小图标的句柄wc.hbrBackground = (HBRUSH)COLOR_WINDOW;// 背景画刷的句柄wc.hCursor = NULL;// 光标的句柄wc.lpfnWndProc = __WndProc;// 窗口处理函数的指针wc.lpszMenuName = NULL;// 指向菜单的指针wc.lpszClassName = "LYSM_class";// 指向类名称的指针// 为窗口注册一个窗口类if (!RegisterClassEx(&wc)) {cout << "RegisterClassEx error : " << GetLastError() << endl;}// 创建窗口HWND hWnd = CreateWindowEx(WS_EX_TOPMOST,// 窗口扩展样式:顶级窗口"LYSM_class",// 窗口类名"LYSM_title",// 窗口标题WS_OVERLAPPEDWINDOW,// 窗口样式:重叠窗口0,// 窗口初始x坐标0,// 窗口初始y坐标800,// 窗口宽度600,// 窗口高度0,// 父窗口句柄0,// 菜单句柄 hIns,// 与窗口关联的模块实例的句柄0// 用来传递给窗口WM_CREATE消息);if (hWnd == 0) {cout << "CreateWindowEx error : " << GetLastError() << endl;}UpdateWindow(hWnd);ShowWindow(hWnd, SW_SHOW);// 消息循环(没有会导致窗口卡死)MSG msg = { 0 };while (msg.message != WM_QUIT) {// 从消息队列中删除一条消息if (PeekMessage(&msg, 0, 0, 0, PM_REMOVE)) {DispatchMessage(&msg);}}cout << "finished." << endl;getchar();end:getchar();return 0;}

到此,相信大家对“VC中控制台程序创建窗口的方法是什么”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: VC中控制台程序创建窗口的方法是什么

本文链接: https://lsjlt.com/news/301261.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • VC中控制台程序创建窗口的方法是什么
    本篇内容主要讲解“VC中控制台程序创建窗口的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“VC中控制台程序创建窗口的方法是什么”吧!在VC控制台程序中调用D3DVideoRender时...
    99+
    2023-06-21
  • VC中控制台程序创建窗口的实例方法
    在VC控制台程序中调用D3DVideoRender时,需要创建新的窗口控件显示图像 #include "windows.h" #include "TCHAR.h" //声明自...
    99+
    2024-04-02
  • vc控制台程序关闭事件时的处理方式是什么
    本篇内容介绍了“vc控制台程序关闭事件时的处理方式是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!关键控制台API函数:SetConso...
    99+
    2023-06-21
  • mfc创建子窗口的方法是什么
    MFC(Microsoft Foundation Classes)创建子窗口的方法是通过调用CWnd类的Create函数来实现的。具...
    99+
    2023-09-21
    mfc
  • Java聊天窗口的创建流程是什么
    本篇内容介绍了“Java聊天窗口的创建流程是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Swing组件JPanelJPanel和AWT...
    99+
    2023-06-30
  • access创建窗体的方法是什么
    在访问数据库、网络资源或调用其他系统时,可以通过创建窗体的方法来获取用户输入、显示信息或进行交互操作。在不同的编程语言和开发环境中,...
    99+
    2024-03-15
    access
  • 什么是控制台应用程序(ConsoleApplication)
    控制台应用程序(Console Application)是一种在计算机操作系统的控制台(命令行界面)中运行的程序。它通过文本输入和输...
    99+
    2023-09-15
    应用程序
  • JavaScript中的程序控制流和函数方法是什么
    本篇内容主要讲解“JavaScript中的程序控制流和函数方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript中的程序控制流和函数方法是什么”吧!程序控制流程序的运行可以...
    99+
    2023-07-04
  • oracle创建序列的方法是什么
    在Oracle数据库中,可以使用以下语法来创建一个序列: CREATE SEQUENCE sequence_name [INCREM...
    99+
    2024-04-09
    oracle
  • mysql创建序列的方法是什么
    MySQL并没有内置的序列功能,但可以通过创建一个表来模拟序列的功能。以下是一种创建序列的方法: 创建一个表来存储序列的当前值: ...
    99+
    2024-05-14
    mysql
  • vc控制台程序关闭事件时的处理方式及注意点详解
    百度可以找到很多关于这个问题解决的方法 关键控制台API函数:SetConsoleCtrlHandler 在支持C++ 11以上的编译器中,你可以这么做。 SetConsoleC...
    99+
    2024-04-02
  • wpf子窗口调用主窗口的方法是什么
    在WPF中,子窗口可以通过以下几种方式调用主窗口的方法:1. 通过子窗口的Owner属性获取到主窗口的实例,然后直接调用主窗口的方法...
    99+
    2023-08-16
    wpf
  • vc多线程编译的方法是什么
    VC++多线程编译的方法包括以下几种:1. 使用OpenMP:OpenMP是一种用于多线程编程的开放式并行性API,可以通过在代码中...
    99+
    2023-08-09
    vc
  • js控制台输出数组的方法是什么
    在 JavaScript 中,可以使用 `console.log()` 方法来在控制台输出数组。例如:```javascriptle...
    99+
    2023-08-08
    js
  • linux线程的创建方法是什么
    在Linux系统中,可以使用pthread库来创建线程。pthread库是一个POSIX线程库,提供了一系列函数来创建、管理和同步线...
    99+
    2023-08-30
    linux
  • Linux进程创建的方法是什么
    Linux进程的创建可以通过调用fork()系统调用来实现。fork()系统调用会创建一个与父进程几乎完全相同的子进程,包括代码段、...
    99+
    2024-04-02
  • JavaScript窗口对象的方法是什么
    这篇文章主要讲解了“JavaScript窗口对象的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript窗口对象的方法是什么”吧! ...
    99+
    2024-04-02
  • excel2007冻结窗口的方法是什么
    在Excel 2007中,冻结窗口的方法如下:1. 选中需要冻结的行或列,或者选中需要冻结的单元格。2. 在“视图”选项卡的“窗口”...
    99+
    2023-06-17
    excel2007冻结窗口 excel
  • eclipse重置窗口的方法是什么
    在Eclipse中重置窗口的方法是通过以下步骤操作: 打开Eclipse软件,确保已经打开了需要重置窗口的工作区。 转到菜单...
    99+
    2024-04-02
  • elipse一个程序创建两个类的方法是什么
    在Python中,可以通过以下几种方法来创建两个类:1. 创建两个独立的类:```pythonclass Class1:def __...
    99+
    2023-09-25
    elipse
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作