一 控制台显示消息框

#include <stdio.h>
#include <windows.h>int main(int argc, char* argv[])
{int nRet=MessageBox(NULL, TEXT("Console Win32 API Demo !!!"), "Console Demo", MB_OKCANCEL);//int nRet = ::MessageBox(NULL,"aaa","bbb",MB_OKCANCEL);if(IDOK==nRet){printf("用户选择了\"确定\"按钮 \n");}else{printf("用户选择了\"取消\"按钮 \n");}return 0;
}

控制台程序调用win32 API;包含windows.h;

如下的代码看上去没错;第一次执行;出现 无法执行程序;

改成如下;去掉TEXT宏;不一次性构建;先编译;再执行;结果提示 冒号语法错误;

冒号应该是没错;调用win32 api,都是::XXX;

去掉冒号;如下图;直接写win32 API;结果对了;

二 调用Win32 API在控制台画线

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>HWND WINAPI GetConsoleWindow();int main(int argc, char *argv[])
{HWND hwnd; HDC hdc; HPEN hpen;hwnd = GetConsoleWindow(); hdc = GetDC(hwnd); system("color A3"); system("cls"); hpen = CreatePen(PS_SOLID, 3, RGB(255, 0, 0)); SelectObject(hdc, hpen); MoveToEx(hdc, 20, 20, NULL); LineTo(hdc, 200, 300); DeleteObject(hpen); ReleaseDC(hwnd, hdc); getchar();return 0;
}

第一次直接执行,也是显示 无法执行程序;不一次性构建,先编译,再执行,就可以;可能是版本问题;

代码简单解释:

获取控制台句柄到hwnd;
从hwnd获取设备描述表句柄赋给hdc;
调用dos命令设置控制台窗口颜色;
调用dos命令清屏;
创建画笔:实线,宽度3,红色;
把画笔选进设备描述表;
设置起始点;画线;
删除画笔;
释放设备描述表;
等待输入一个字符然后退出;

关于DOS color命令的说明:

设置默认的控制台前景和背景颜色。
COLOR [attr] attr 指定控制台输出的颜色

属性颜色
属性由两个十六进制数字指定
-- 第一个为背景,第二个则为前景。

每个数字可以为以下任何值之一:
0 = 黑色
8 = 灰色
1 = 蓝色
9 = 淡蓝色
2 = 绿色
A = 淡绿色
3 = 浅绿色
B = 淡浅绿色
4 = 红色
C = 淡红色
5 = 紫色
D = 淡紫色
6 = 黄色
E = 淡黄色
7 = 白色
F = 亮白色

如果没有给定任何参数,该命令会将颜色还原到 CMD.EXE 启动时的颜色。
这个值来自当前控制台窗口、/T 命令行开关或DefaultColor 注册表值。
如果用相同的前景和背景颜色来执行 COLOR 命令,COLOR 命令会将 ERRORLEVEL 设置为 1。
例如: "COLOR fc" 在亮白色上产生亮红色

控制台调用win32 API 示例二则相关推荐

  1. 图解C# 调用Win32 API 示例程序

    一 弹出消息框和发声 先上代码:相关函数不解释:网上比较容易查到: using System; using System.Collections.Generic; using System.Compo ...

  2. java 调用win32 api 学习总结

    java使用JInvoke调用windows API 使用jinvoke调用windowsAPI.jna使用比较麻烦,需要写c代码和参数转换,jinvoke的使用就像jdk中的包一样. 官网使用参考: ...

  3. C# 获取笔记本电池信息 调用 Win32 Api

    C# 获取笔记本电池信息 获取电池信息需要调用Win32 Api 相关函数为 GetSystemPowerStatus 函数结构: BOOL GetSystemPowerStatus(LPSYSTEM ...

  4. C#调用Win32 api学习总结

    转载:https://blog.csdn.net/bcbobo21cn/article/details/50930221 从.NET平台调用Win32 API Win32 API可以直接控制Micro ...

  5. MSIL 教程(二):数组、分支、循环、使用不安全代码和如何调用Win32 API(转)...

    转自:http://www.cnblogs.com/Yahong111/archive/2007/08/16/857574.html 续上文[翻译]MSIL 教程(一) ,本文继续讲解数组.分支.循环 ...

  6. C++调用win32 API操作打印机实现驱动打印

    方法说明: 1.s2w(string &content, int length):将string类型的变量转换为wchar_t*类型,用于调用TextOut()方法时传参,其中length为需 ...

  7. php调用win32 api,C#_c#使用win32api实现获取光标位置,方法一:需要调用win32api,winfo - phpStudy...

    c#使用win32api实现获取光标位置 方法一:需要调用win32api,winform.wpf通用 [DllImport("user32.dll")] public stati ...

  8. c#调用win32 API函数修改系统时间

    一般来说,系统时间的修改可以通过win32 API函数库中的SetLocalTime函数进行设置.对于C#语言来说,虽然win32 API大部分函数都已经封装在了.NET Framework类库中,但 ...

  9. Python发送微信消息(文字、图片、文件)给指定好友和微信群(调用Win32 API模拟人的手动操作来发送消息)

    本示例是调用Windows API模拟发送,用Python调用win32api这个库来调用Windows API模拟人的手动操作来发送消息. 在使用前,请将你微信的窗口设置为在最前面,这样就便于程序找 ...

最新文章

  1. 卷积神经网络(CNN)_相关知识
  2. volatile: 多线程程序员最好的朋友
  3. 像素测量工具_翼眸科技利用无人机屋顶测量光伏行业应用
  4. 自动生成文章的html,文章自动更新工具|自动生成文件|自动伪原创|文章自动插入关键词工具...
  5. Strust2初之体验
  6. redis队列(list)
  7. jQuery post使用变量作参数名
  8. Android基于mAppWidget实现手绘地图(九)–如何处理地图对象的touch事件
  9. cookielib和urllib2模块相结合模拟网站登录
  10. 一文入门推荐系统——推荐系统实践读书笔记
  11. python接受前端传递的参数
  12. 搜索引擎四:CoreSeek配置MySql数据源
  13. html 倒计时,jQuery倒计时插件
  14. 电子科技大学计算机学院图章,桂林电子科技大学印章管理暂行规定
  15. 使用树莓派搭建直播平台实现b站实时直播
  16. Golang 期权 指标计算
  17. 社会工程学三本_1.9万人报考,扩招近千人!被戏称为“大三本”的985——东南大学,低调有实力!...
  18. 如何实现SQL中加减乘除等四则运算
  19. Node Inspector 调试 Node.js 程序
  20. 关于自动驾驶车辆控制

热门文章

  1. Word中插入参考文献及其引用并能够自动更新的方法
  2. pip安装ipython_Python -- 关于pip安装Ipython
  3. js判断页面是首次加载还是刷新
  4. Create a Service Metrics Strategy
  5. Express 的简单使用
  6. 虚拟机的网络连接三种形式的说明
  7. html5 Canvas画图教程(5)—canvas里画曲线之arc方法
  8. hdu4740 Sum
  9. numel--矩阵的元素个数
  10. php有意思知识分享,分享几个有意思的数组方法