创建一个简单的窗口(eclipse c++)

玩了几天的C++,突然发现一个问题,为啥我借的这本书C++教程800多页,但是到结束都没有介绍一点窗口的代码呢?哪怕可以创建一个提示窗口呢?

我比较愚笨,想在网上找个在WINDOWS的窗口的程序,但是把代码复制进去,都不能用。一看都是VC的,可是当时配置的环境就用的是eclipse+CDT+MinGW。一看到函数入口都是int WINAPI WinMain 而不是main的时候,就慌了。什么情况。

为此翻了一下午网站,都说的不详不细的(时间都足够装几遍VC的了),按道理说像我这样环境的人应该很多,但是就是找不到,特别是版本不同,也没有截图,说的都没有。唯一了解的就是编译的时候要加个-mwindows。可是用的是Windows环境下的eclipse,编译也就点下图标。这句话到哪里去整啊。

但是终于还是找到了,在这里写一下,以免以后忘记了。

选中工程,按ALT+Enter。会出现如下界面,在C/C++ Buid->Settings中的Tool Setting中左边选中MinGW C++linker 右边的command的g++后面加上-mwindows。结果顺利运行了哈。我不知道这个是不是最好的方法,但是是我目前可用的方法。

对了,顺便把代码贴在这里,来源不记得哪个了,是借用的:

#include <windows.h>
#include <stdio.h>
//自定义消息循环相应函数
LRESULT CALLBACK myWndProc(HWND hWnd,
                                  UINT Msg,
                                  WPARAM wParam,
                                  LPARAM lParam)
{
        switch (Msg)
        {
        case WM_CLOSE:
                if(MessageBox(hWnd,"你要关闭窗口吗?","提示!",MB_OKCANCEL) == IDOK)
                        DestroyWindow(hWnd);
                break;
        case WM_DESTROY:
                PostQuitMessage(0);
                break;
        default:
                return DefWindowProc(hWnd,Msg,wParam,lParam);
        }
        return 0;
}

//主函数
int WINAPI WinMain(
                                   HINSTANCE hInstance,
                                   HINSTANCE hPrevInstance,
                                   LPSTR lpCmdLine,
                                   int nShowCmd)
{
        WNDCLASS wndcls;
        wndcls.cbClsExtra = 0;
        wndcls.cbWndExtra = 0;
        wndcls.hbrBackground = (HBRUSH)GetStockObject(WHITE_PEN);
        wndcls.hCursor = LoadCursor(NULL,IDC_ARROW);
        wndcls.hIcon = LoadIcon(NULL,IDI_APPLICATION);
        wndcls.hInstance = hInstance;
        wndcls.lpfnWndProc = myWndProc;
        wndcls.lpszClassName = "123";
        wndcls.lpszMenuName = NULL;
        wndcls.style = CS_HREDRAW | CS_VREDRAW;

        RegisterClass(&wndcls);

        HWND hWnd = CreateWindow("123","标题",WS_OVERLAPPEDWINDOW
                | WS_VISIBLE,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,
                CW_USEDEFAULT,NULL,NULL,hInstance,NULL);
        //消息循环
        MSG Msg;
        while(GetMessage(&Msg,hWnd,NULL,NULL))
        {
                TranslateMessage(&Msg);
                DispatchMessage(&Msg);
        }

        return 0;
}

然后在贴一个运行后的图

创建一个简单的窗口(eclipse c++)

时间: 2024-08-20 01:38:58

创建一个简单的窗口(eclipse c++)的相关文章

用 Eclipse 创建一个简单的web项目

Eclipse neon 汉化版 ; 1;右击新建 -->  选择 动态Web项目 2:  填写 项目名 项目位置 ; 选择 Dynamic web module version 和 tomcat version ; 点击完成 即可创建 项目; 2.1:项目名称; 2.2:项目位置; 2.3: Dynamic Web Module Version  和 Tomacat  Version  之间有版本上的匹配关系: 匹配关系如下图 3: 创建成功后的项目结构: 4: 在创建好项目结构之后 先查看一

《Entity Framework 6 Recipes》翻译系列 (3) -----第二章 实体数据建模基础之创建一个简单的模型 (转)

第二章 实体数据建模基础 很有可能,你才开始探索实体框架,你可能会问“我们怎么开始?”,如果你真是这样的话,那么本章就是一个很好的开始.如果不是,你已经建模,并在实体分裂和继承方面感觉良好,那么你可以跳过本章. 本章将带你漫游使用实体框架建模的基本实例,建模是实体框架的核心特性,同时也是区别实体框架和微软早期的数据访问平台的特性.一旦建好模,你就可以面向模型编写代码,而不用面向关系数据库中的行和列. 本章以创建一个简单概念模型的实例开始,然后让实体框架创建底层的数据库,剩下的实例,将向你展示,如

如何利用CEF3创建一个简单的应用程序 (Windows Platform)

1. 说明 这篇文章主要讲述如何利用CEF3来创建一个简单的应用程序,引用的是1535及以上版本中包含的 Cefsimple 项目例子.如果想知道关于CEF3更多的使用方法,可以去访问 GeneralUsage. 2. 开始 首先,根据自身所使用的开发平台,可以去 这里 下载对应的发布版本.针对这个教程,我们需要下载1750或者更新的版本.当前支持的平台有Windows, Linux和Mac OS X.每一个版本都包含了当在特定平台上编译特定版本CEF3时所需要的所有文件和资源.您可以通过包含在

创建一个简单的 MDM 服务器(1)

前提:已获得 APNS 证书 ,已完成 MDM 配置描述文件的制作.请参考< MDM 证书申请流程 >一文和<配置MDM Provisioning Profile>. 环境:OSX 10.9.2,JDK 1.6,Eclipse JavaEE Helois,Tomcat 7.0 一.前言 <THE IOS MDMPROTOCOL>(即Inside Apple MDM)一文中描述了一个简单 MDM Server Python 实现(server.py).笔者也曾参照此文配置

Win32编程API 基础篇 -- 2.一个简单的窗口 根据英文教程翻译

一个简单的窗口 例子:简单的窗口 有时人们在IRC提问,”我应该怎样制作一个窗口”...嗯,这恐怕不是完全这么简单好回答!其实这并不难一旦你明白你在做什么,但在你得到一个可展示的窗口之前还有一些事情需要我们去做,我们只需要简单地聊聊快速做下笔记,这个问题就能被很简单的回答. 我很喜欢先动手再学习...一下就是一个简单的窗口的程序,我们将会简短的对它进行解释说明. 1 #include <windows.h> 2 3 const char g_szClassName[] = "myWi

如何创建一个简单的VS Code扩展

注:本文提到的代码示例下载地址>How to create a simple extension for VS Code VS Code 是微软推出的一款轻量级的代码编辑器,免费,开源,支持多种语言,还能安装各种扩展.没有用过的同学可以下载下来感受一下,具体参见官方文档. 假设VS Code你已经安装好了,也已经大概玩过一遍了.接下来我们就开始讲讲怎么创建一个简单的VS Code扩展. 首先要装下node.js,然后通过命令行安装Yeoman,我们要通过这个工具来自动生成扩展代码: >npm

java创建一个简单的小框架frame

import java.awt.*; import javax.swing.*; public class SimpleFrameTest { public static void main(String[] args) { EventQueue.invokeLater(new Runnable(){ // 开一个线程 public void run() { SimpleFrame frame = new SimpleFrame(); frame.setTitle("记事本"); //

Android开发:如何创建一个简单的HelloWorld

HelloWorld是继搭建环境之后又需要完成的一个步骤,要创建一个简单的HelloWorld,首先创建第一个名为HelloWorld的Android项目. 通过File -> New -> Project 菜单,建立新项目"Android Project",选择一些参数 ,你可以选择你喜欢的,但是前提是你要创建相应的AVD.这里我填的是: Project name:HelloWorld Contents:选择Create new project in workspace,

Django入门第一步(安装和创建一个简单的项目)

目录 Django入门第一步(安装和创建一个简单的项目) 一. Django项目目录结构 二.注意事项 三.Django安装 3.1.安装命令 3.2.验证django是否安装成功 3.3.使用方法 Django入门第一步(安装和创建一个简单的项目) 在使用Django框架开发web应用程序时,开发阶段同样依赖wsgiref模块来实现Server的功能,我们使用Django框架是为了快速地开发application. 如果使用的是我们自定义的框架来开发web应用,需要事先生成框架包含的一系列基础