C语言创建windows窗口实例

耐得住寂寞,禁得起诱惑,这就是程序人生

步骤:
1.在WinMain中定义各种变量
2.注册窗口类RegisterClass
3.创建窗口CreateWindow
4.显示窗口和更新窗口

代码如下:

ShowWindow (hwnd, iCmdShow) ;
     UpdateWindow (hwnd) ;

5.消息循环

代码如下:

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

完整代码:

代码如下:

#include <windows.h> 
 
LRESULT CALLBACK MyProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam); 
 
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd ) 

     MSG      msg; 
     HWND     hwnd; 
     static TCHAR szAppName[] = "hl"; 
 
     WNDCLASS wndclass; 
     wndclass.style        = CS_HREDRAW | CS_VREDRAW; 
     wndclass.cbClsExtra   = 0; 
     wndclass.cbWndExtra   = 0; 
     wndclass.lpfnWndProc  = MyProc; 
     wndclass.hInstance    = hInstance; 
     wndclass.hIcon        = LoadIcon(NULL,IDI_APPLICATION); 
     wndclass.hCursor      = LoadCursor(NULL,IDC_ARROW); 
     wndclass.hbrBackground= (HBRUSH)GetStockObject(WHITE_BRUSH); 
     wndclass.lpszMenuName = NULL; 
     wndclass.lpszClassName= szAppName; 
 
     if(!RegisterClass(&wndclass)) 
     { 
          MessageBox(NULL,TEXT("error"),TEXT("title"),MB_ICONERROR); 
          return 0; 
     } 
     hwnd = CreateWindow(szAppName, 
                              TEXT("Hello"), 
                              WS_OVERLAPPEDWINDOW, 
                              CW_USEDEFAULT, 
                              CW_USEDEFAULT, 
                              CW_USEDEFAULT, 
                              CW_USEDEFAULT, 
                              NULL, 
                              NULL, 
                              hInstance, 
                              NULL 
                              ); 
     ShowWindow(hwnd,nShowCmd); 
     UpdateWindow(hwnd); 
 
     while(GetMessage(&msg,hwnd,0,0)) 
     { 
          TranslateMessage(&msg); 
          DispatchMessage(&msg); 
     } 
     return msg.wParam; 

 
LRESULT CALLBACK MyProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam) 

 
     switch(message) 
     { 
     case WM_DESTROY: 
          PostQuitMessage(0); 
          return 0; 
     } 
     return DefWindowProc(hwnd,message,wParam,lParam); 
}

(0)

相关推荐

  • C语言实现在windows服务中新建进程的方法

    本文实例讲述了C语言实现在windows服务中新建进程的方法.分享给大家供大家参考.具体如下: 运行环境:visual stdio 2008 文件名:testService.c #include <windows.h> #include <stdio.h> #include <time.h> #include <tchar.h> HANDLE hMutex; SERVICE_STATUS ServiceStatus; SERVICE_STATUS_HANDL

  • mingw编译的windows命令行贪吃蛇示例

    主线程:维护游戏逻辑,刷新画面.后台线程:监听按键(getch) 暂时只支持Windows下的MinGW编译,本来用MinGW编译是想写成Linux下也能运行的.结果Linux下面没有直接提供getch()函数(Windows下的<conio.h>有). 管他呢!纯属娱乐~ 编译要加-lpthread snake_cmd.cpp 复制代码 代码如下: #include <limits.h> // for INT_MAX#include <stdio.h>#include

  • 搭建C语言开发环境(Windows平台)汇总

    新接触C语言,如何进行C语言开发环境的搭建值得思考并整理 一.在Windows平台配置GNU环境 GNU http://www.gnu.org/ 选择以下GNU环境下载安装到C盘: 1.MinGw 官网下载安装 http://www.mingw.org/ 本站高速下载安装 http://www.jb51.net/softs/192011.html 将C:\MinGW\msys\1.0\msys.bat 发送到桌面快捷方式 在msys.bat命令框中输入 gcc 会得到:sh: gcc: comm

  • 浅谈Windows系统下C语言编程中Glib库的使用

    在这个C的变成世界里,有许多实用的库,其中最有名的且最通用(跨多个平台的实现包括Windows,要知道很多实用的编程库都不提供Windows的实现)就是GLib这个库,其中就有实现线程的部分. glib库是Linux平台下最常用的C语言函数库,它具有很好的可移植性和实用性. glib是Gtk +库和Gnome的基础.glib可以在多个平台下使用,比如Linux.Unix.Windows等.glib为许多标准的.常用的C语言结构提供了相应的替代物. 如果在程序中要使用到glib库中的函数,则应该包

  • C语言创建windows窗口实例

    耐得住寂寞,禁得起诱惑,这就是程序人生 步骤: 1.在WinMain中定义各种变量 2.注册窗口类RegisterClass 3.创建窗口CreateWindow 4.显示窗口和更新窗口 复制代码 代码如下: ShowWindow (hwnd, iCmdShow) ;      UpdateWindow (hwnd) ; 5.消息循环 复制代码 代码如下: while (GetMessage (&msg, NULL, 0, 0))      {           TranslateMessag

  • 易语言创建EXCEL对象的方法

    Excel对于大家来说,肯定不会陌生,办公软件"三剑客"之一,报表利器.今天,我们要学习的是易语言怎么创建EXCEL对象,好了,言归正传吧! 1.老规矩,首先运行易语言,创建"Windows窗口程序",如图: 2.绘制按钮组件,调整其位置和大小.如图: 3.修改相关组件的对应属性,并规范命名组件的名称.如图: 4.编写程序代码,具体代码如下: 5.代码编写完成,测试程序.猛戳F5键,运行程序.如图:

  • Windows窗口消息实例详解

    本文实例总结了Windows窗口消息.分享给大家供大家参考.具体如下: 复制代码 代码如下: //////////////////////////////////////////////////////////////////////////    #include "AFXPRIV.H"//消息值的定义来源    #include "Dde.h"//DDE消息值的定义来源    #include "CPL.H"//控制面板消息值的定义来源   

  • python在windows下创建隐藏窗口子进程的方法

    本文实例讲述了python在windows下创建隐藏窗口子进程的方法.分享给大家供大家参考.具体实现方法如下: import subprocess IS_WIN32 = 'win32' in str(sys.platform).lower() def subprocess_call(*args, **kwargs): #also works for Popen. #It creates a new *hidden* window, #so it will work in frozen apps

  • VS2019使用Windows桌面应用程序模块创建Win32窗口

    本文介绍了VS2019使用Windows桌面应用程序模块创建Win32窗口,分享给大家,具体如下: 头文件Project1.h: #pragma once #include "resource.h" 实现文件Project1.cpp: // Project1.cpp : 定义应用程序的入口点. // #include "framework.h" #include "Project1.h" #define MAX_LOADSTRING 100 //

  • 使用C#创建Windows服务的实例代码

    本文介绍了使用C#创建Windows服务的实例代码,分享给大家 一.开发环境 操作系统:Windows 10 X64 开发环境:VS2015 编程语言:C# .NET版本:.NET Framework 4.0 目标平台:X86 二.创建Windows Service 1.新建一个Windows Service,并将项目名称改为"MyWindowsService",如下图所示: 2.在解决方案资源管理器内将Service1.cs改为MyService1.cs后并点击"查看代码&

  • C语言创建链表错误之通过指针参数申请动态内存实例分析

    本文实例讲述了C语言创建链表中经典错误的通过指针参数申请动态内存,分享给大家供大家参考之用.具体实例如下: #include <stdio.h> #include <stdlib.h>// 用malloc要包含这个头文件 typedef struct node { int data; struct node* next;// 这个地方注意结构体变量的定义规则 } Node; void createLinklist(Node* pHder, int length) { int i =

  • python GUI编程(Tkinter) 创建子窗口及在窗口上用图片绘图实例

    注意主窗口一定要为tk.Tk(),在主窗口上通过button的点击相应子函数创建子窗口,注意此时创建出来的窗口必须是Toplevel,否则出错. 至于用图片在窗口上绘图,则按代码所示即可. # -*- coding: utf-8 -*- """ Created on Wed Oct 26 20:32:52 2016 @author: min """ import Tkinter as tk from PIL import Image, Image

  • C#通过创建Windows服务启动程序的方法详解

    本文实例讲述了C#通过创建Windows服务启动程序的方法.分享给大家供大家参考,具体如下: 1. 新建一个Windows服务应用程序 创建项目-->Visual C# 左侧的"+"-->Windows -->Windows 服务(右侧模板)-->输入名称,确定创建项目 2. 设置Windows服务的属性(Windows服务里没有窗体,所以点击左侧设计器里空白的地方即可在右侧属性栏里看到属性) 这里属性是控制服务器是否可以停止,暂停,继续等等的操作.根据需要选择

  • 易语言做软件的实例教学

    教大家简单的做一个小软件 第一步,打开易语言,选择Windows窗口程序, 第二步,在基本组件找到按钮组件 第三步,双击按钮,然后写代码. 第四步,运行测试效果 第五步,编译 上面就是用易语言编写软件的实例步骤,感谢大家的学习和对我们的支持.

随机推荐