目前共有7篇帖子。 内容转换:不转换▼
 
点击 回复
126 6
其實,無論是什麼編程語言,要想製作Windows窗口程序
一派护法 十九级
1楼 发表于:2015-4-4 11:10
都是要想辦法調用Windows API
一派护法 十九级
2楼 发表于:2015-4-4 11:11
而MFC,Windows Forms,還有QT什麼的,都是框架而已。
一派护法 十九级
3楼 发表于:2015-4-4 15:13
在Windows系統中,C++調用Windows API顯示窗口的程序很複雜。需要創建窗口類,註冊窗口類,通知Windows顯示窗口。而在Linux系統下,只需要調用幾個GTK函數就能顯示窗口了,不到10行代碼。
一派护法 十九级
4楼 发表于:2015-4-4 15:17
#include <gtk/gtk.h>
int main (int argc, char *argv[])
{
    GtkWidget *window;
    GtkWidget *label;
    gtk_init (&argc, &argv);
    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title (GTK_WINDOW (window), "Hello World");
    g_signal_connect(window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
    label = gtk_label_new ("Hello, World");
    gtk_container_add (GTK_CONTAINER (window), label);
    gtk_widget_show_all (window);
    gtk_main ();
    return 0;
}
這是C語言調用gtk函數庫顯示窗口的代碼。這個只能在Linux下運行。
代碼行數比調用Windows API的少了幾十行呢
一派护法 十九级
5楼 发表于:2015-4-5 17:58
可以寫一個C++程序調用MsgBox函數,代碼可以只有十幾行
一派护法 十九级
6楼 发表于:2015-10-30 21:38
在Windows XP下,用Visual C++ 6.0打開記事本notepad.exe,或者畫圖mspaint.exe,或者資源管理器explorer.exe,都可以看到rc資源文件,裡面有24資源(用於啟用XP風格),以及各種對話框和圖標。打開自己寫的MFC程序的exe文件也是同樣的效果。但是用VC++6打開其他語言寫的程序,比如C#的Windows Forms,VB生成的程序就不能看到資源文件,甚至根本就打不開。而且VB6生成的exe文件很難擁有XP風格的控件。
其實,無論用什麼編程語言編寫Windows窗口程序,編譯后都要生成機器代碼,即便是C++也是這樣,MFC也是這樣。這些機器代碼都要調用Windows API來創建、註冊并顯示窗口。這些窗口以及其中的控件可能是直接讀取的rc資源文件,也可能是編寫的代碼動態創建了這些控件(也就是不用rc資源文件)。因此,我覺得,用其他語言編寫的程序,肯定沒有用到rc文件,而是控件是由生成的機器代碼在程序運行時通知Windows動態創建的,所以才會出現用VC++6打開exe文件后無法讀取rc資源的現象。
一派护法 十九级
7楼 发表于:2015-10-30 21:52

這是用VC++6打開Windows XP自帶的記事本exe程序的效果。圖中畫紅圈的地方是24資源,該資源用於啟用程序界面的XP控件風格。

回复帖子

内容:
用户名: 您目前是匿名发表
验证码:
(快捷键:Ctrl+Enter)
 

本帖信息

点击数:126 回复数:6
评论数: ?
作者:巨大八爪鱼
最后回复:巨大八爪鱼
最后回复时间:2015-10-30 21:52
 
©2010-2024 Arslanbar Ver2.0
除非另有声明,本站采用知识共享署名-相同方式共享 3.0 Unported许可协议进行许可。