`
java-mans
  • 浏览: 11480020 次
文章分类
社区版块
存档分类
最新评论

windows32基础和GetSystemMetrics函数

 
阅读更多

有个坏消息,windows程序中不能使用printf函数

好消息是,仍然可以使用sptrinf和系列的其他函数来显示文本

下面观察printf和sprintf的定义

int printf(const char* szFormat,...);

int sprintf(char * szBuffer,const char* szFormat,...);

在console下,你可以这样输出:

#include<iostream>
#include<string>
using namespace std;
int main(){
	printf("the sum of %i and %i is %i\n",5,3,5+3);

   	system("pause");
	return 0;
}


下面用sprintf,跟上面是等价的:

#include<iostream>
#include<string>
using namespace std;
int main(){
	char buffer[100];
	sprintf(buffer,"the sum of %i and %i is %i",5,3,5+3);
	puts(buffer);
	system("pause");
	return 0;
}


unicode:

如果UNICODE没有定义,那么:

typedef char TCHAR

如果UNICODE定义了,那么:

typedef wchar_t TCHAR

wchar_t跟char最大的不同是,一个是占用两个字节,一个是占用一个字节:

#include<iostream>
#include<string>
using namespace std;
int main(){
	wchar_t p[]=L"hello";
	cout<<wcslen(p)<<endl;
	cout<<sizeof(p)<<endl;//输出12
	system("pause");
	return 0;
}


下面是用MessageBoxPrintf输出的例子:(GetSystemMetric很重要)

#include<windows.h>
#include<tchar.h>
#include<stdio.h>
int CDECL MessageBoxPrintf(TCHAR * szCaption,TCHAR * szFormat,...){
	TCHAR szBuffer[1024];
	va_list pArgList;
	va_start(pArgList,szFormat);
	_vsntprintf(szBuffer,sizeof(szBuffer)/sizeof(TCHAR),szFormat,pArgList);
	va_end(pArgList);
	return MessageBox(NULL,szBuffer,szCaption,0);
}
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,PSTR scCmdLine,int iCmdShow){
	int cxScreen,cyScreen;
	cxScreen=GetSystemMetrics(SM_CXSCREEN);
	cyScreen=GetSystemMetrics(SM_CYSCREEN);
	MessageBoxPrintf(TEXT("ScrnSize"),TEXT("The screen is %i pixels wide by %i pixels high"),cxScreen,cyScreen);
	return 0;
}


结果如下:

分享到:
评论

相关推荐

    GetSystemMetrics_delphi_

    Delphi 巧用GetSystemMetrics函数,获取屏幕宽度。

    Delphi编程之“GetSystemMetrics”函数.rar_GetSystemMetrics

    该软件是Delphi关于API的一个使用! 有详细说明文档和程序实例!

    API之网络函数---整理网络函数及功能

    CreateScalableFontResource 为一种TureType字体创建一个资源文件,以便能用API函数AddFontResource将其加入Windows系统 DrawText 将文本描绘到指定的矩形中 DrawTextEx 与DrawText相似,只是加入了更多的功能 ...

    通过python实现windows桌面截图代码实例

    这篇文章主要介绍了python实现windows桌面截图代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友... width=win32api.GetSystemMetrics(win32con.SM_CXVIRTUALSCREEN)

    基于API函数实现特殊菜单效果,VB源代码.rar

    VB基于API函数实现特殊菜单效果,实现水平展开的两级菜单或三级菜单,或者是带分隔条的菜单。程序调用GetSystemMetrics函数设定菜单高度,利用For循环添加菜单项。

    vb编程经验手册.visual basic教程

    妙用GetSystemMetrics函数 利用API和注册表获取系统信息上 VB快速调用系统对话框下 利用API和注册表获取系统信息中 利用API和注册表获取系统信息下 百叶窗图形特效 实现平面工具栏下 数据库查询结果的动态排序三 ...

    VB基于API函数实现特殊菜单效果

    VB基于API函数实现特殊菜单效果,实现水平展开的两级菜单或三级菜单,或者是带分隔条的菜单。程序调用GetSystemMetrics函数设定菜单高度,利用For循环添加菜单项。

    vc窗口框架美化教程

    在网上也看到了不少高手们的做法,但对于我这种不喜欢太复杂的人来说,我不是很喜欢那样写代码,GetSystemMetrics函数来得到各个边框的长度或宽度。。。。没几下,我的头就晕了,在查了许多资料以及实验后,我终于...

    C++视区窗口触摸屏消息捕获

    1. BYTE digitizerStatus = (BYTE) GetSystemMetrics(SM_DIGITIZER); 2. 3. if ((digitizerStatus & (0x80 + 0x40)) == 0) 4. //堆栈就绪+多触点 5. 6. { 7. 8. AfxMessageBox(L"No touch input is currently...

    Windows 60个常用API

    函数 Arc() Beep() BringWindowToTop() Chord() CloseHandle() CloseWindow() DeleteFileA() DeleteMenu() DestroyWindow() DllRegisterServer() Ellipse() ExitWindowsEx() FatalExit() FindWindowA() FreeLibrary...

    用Win32API Shell_NotifyIcon进行托盘图标编程-源代码

    CODE: // 结构内存用0初使化 - 注意: 一些Windows函数要求这么做,不过我记不得哪些需要,哪些不需要了:) &lt;br&gt; NOTIFYICONDATA niData; ZeroMemory(&niData,sizeof(NOTIFYICONDATA)); &lt;br&gt;// 得到...

    win32-dpi:在整个XP中正确DPI缩放Win32 Windows到最新Windows 10的示例

    有关如何编写可识别Win32 DPI的GUI应用程序的简单示例,该应用程序可在从Windows XP到最新的Windows 10的所有操作系统上正确缩放(在内部版本10.0.18980.1中进行了测试)。 简而言之 主监视器通常位于系统DPI上...

    VC学习大纲 VC学习讲义

    我们通常不必要知晓每一个函数和消息。但另一方面,也不得不记住其中的一部分,否则很难将VC++运用自如。到底该记住哪些,这在我们的课程中都会涉及到。 第二课: C++经典语法与应用,类的编写与应用,构造与析构...

    易语言-WIN32API功能150个(鼠标篇)

    .DLL命令 SystemParametersInfo不传址, 整数型, "User32.dll", "SystemParametersInfoA", , 允许获取和设置数量众多的windows系统参数 .参数 uAction, 整数型 .参数 uParam, 整数型 .参数 lpvParam, 整数型 .参数 ...

    delphi 开发经验技巧宝典源码

    0102 使用DivMod函数返回两个操作数相除的商和余数 68 0103 使用Power函数返回底数的任何次幂 69 0104 使用Round函数将实数四舍五入为整数 69 0105 使用Sqr函数计算指定数的平方 70 0106 使用Mean函数计算...

    delphi 开发经验技巧宝典源码06

    0102 使用DivMod函数返回两个操作数相除的商和余数 68 0103 使用Power函数返回底数的任何次幂 69 0104 使用Round函数将实数四舍五入为整数 69 0105 使用Sqr函数计算指定数的平方 70 0106 使用Mean函数计算...

    菜单的工作原理及编写应用ppt和录像

    标记菜单、缺省菜单的实现原理、图形菜单的实现及常犯错误的分析,GetSystemMetrics的应用,快捷弹出菜单的实现方式及其命令响应函数有效范围(与弹出菜单时所指定的父窗口有密切的关系,最底层的子窗口具有最优先的...

    菜单的工作原理及编写应用

    标记菜单、缺省菜单的实现原理、图形菜单的实现及常犯错误的分析,GetSystemMetrics的应用,快捷弹出菜单的实现方式及其命令响应函数有效范围(与弹出菜单时所指定的父窗口有密切的关系,最底层的子窗口具有最优先的...

Global site tag (gtag.js) - Google Analytics