① VC编程中遇到的窗口大小和窗口客户区大小的问题
用 GetWindowRect 得到的是包括非客户区的矩形(非客户区含上边条,下边条,左边条,右边条,非客户区左边的左顶点,非客户区右边的右顶点,左下角的左下角顶点,右下角的右下角顶点,和客户区)。GetClientRect得到的仅是客户区的矩形。桌面上可供应用程序使用的区域是,除出系统占用区之外的应用程序可用区,系统占用的包括任务栏所占用的部分,应用程序要用WS_EX_TPMOST属性才可以扩展到这部分区域,应用程序可用区,可以用getsystemmetrics函数来查询,具体可以参考:《WIN32程序员参考大全》全书共五册,最好是下载有目录的那个pdf版。CSDN中去下载,注意下有目录的。关于窗口的一般内容其中都有,要操作和绘制非客户区,就要搜索网络,关键字一般可以是:VC 自绘 非客户区 标题栏等。
② 璋佽兘鎻愪緵镣笴璇瑷镄勮瘯棰樼粰鎴戯纴链濂借兘链夌瓟妗堢殑锛岄潪甯告劅璋锛
浠ヤ笅鏄涓浜 C 璇瑷镄勮瘯棰桡纴姣忎釜璇曢橀兘闄勫甫链夌瓟妗堛傚笇链涜兘澶熷府锷╁埌浣犮
1銆佺紪鍐欎竴涓绋嫔簭锛屼粠锻戒护琛屽弬鏁颁腑璇诲彇涓や釜鏁存暟锛岃$畻瀹冧滑镄勫拰骞惰緭鍑虹粨鏋溿
绛旀堬细
#include <stdio.h>
int main(int argc, char *argv[]) {
if (argc != 3) {
printf("Usage: %s <int1> <int2>
", argv[0]);
return 1;
}
int x = atoi(argv[1]);
int y = atoi(argv[2]);
printf("%d + %d = %d
", x, y, x + y);
return 0;
}
2銆佺紪鍐欎竴涓鍑芥暟锛屾帴鍙椾袱涓鍙傛暟 a 鍜 b锛岃繑锲炲畠浠镄勬渶澶у叕绾︽暟銆
绛旀堬细
int gcd(int a, int b) {
if (b == 0) {
return a;
} else {
return gcd(b, a % b);
}
}
3銆佺紪鍐欎竴涓绋嫔簭锛屼粠镙囧嗳杈揿叆涓璇诲彇涓涓瀛楃︿覆锛屽皢鍏朵腑镄勫ぇ鍐椤瓧姣嶈浆鎹涓哄皬鍐椤瓧姣嶏纴骞惰緭鍑鸿浆鎹㈠悗镄勫瓧绗︿覆銆
绛旀堬细
#include <stdio.h>
#include <ctype.h>
int main() {
char c;
while ((c = getchar()) != EOF) {
putchar(tolower(c));
}
return 0;
}
4銆佺紪鍐欎竴涓绋嫔簭锛屼粠镙囧嗳杈揿叆涓璇诲彇涓涓瀛楃︿覆锛屽垽鏂鍏朵腑鏄钖︽湁閲嶅岖殑瀛楃︼纴骞惰緭鍑虹粨鏋溿
绛旀堬细
#include <stdio.h>
#include <stdbool.h>
bool has_plicate_chars(const char *str) {
bool seen[256] = { false };
while (*str != '