怎么用c语言在windows下d出一个置顶的窗口?

怎么用c语言在windows下d出一个置顶的窗口?,第1张

一、具体做法:
1、C++Builder中,先学会最基本的编写一个可运行的win程序后,将这个程序的窗体的FormStyle属性设定为置顶窗( fsStayOnTop),VC中的窗体也有类似的选项。设定好后编译成可运行的程序,运行编译生成的程序就会d出置顶窗体。
2、也可调用windows的API函数(调用系统功能),所有能调用API的编程软件都有类似的功能,调用函数:
SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0,SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
3、C语言可用在很多不同的编程环境中,不同的编程环境中d出置顶的窗口的具体编写方法不同。
二、扩展知识:
1、C语言,一般的是一种用于编程的计算机高级语言,其实更应该说是语系。当前说C语言,基本上说的是C++。严格意义上的C语言一般指很久远以前,在win还没普及的年代,在DOS下使用的Turbo C20及之前编程环境下用的C语言。
2、C语言并不是一个编程工具,而是一个指令和语法的集合,当前主要用于微软的VC以及Borland公司的C++Builder编程工具中(有时也被人叫做编程环境),两种不同的工具又有N个不同的版本,不同的版本下,具体的编写又有很多的不同。

#include <windowsh>
HWND NewWindow(HINSTANCE hInst,HWND hWnd,char className,char appName,RECT rect,WNDPROC wndProc)
{
WNDCLASSEX wclsx;
wclsxcbClsExtra = NULL;
wclsxcbSize = sizeof(wclsx);
wclsxcbWndExtra = NULL;
wclsxhbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wclsxhCursor = LoadCursor(NULL, IDC_ARROW);
wclsxhIcon = LoadIcon(NULL,IDI_APPLICATION);
wclsxhIconSm = LoadIcon(NULL,IDI_APPLICATION);
wclsxhInstance = hInst;//GetModuleHandle(NULL);
wclsxlpfnWndProc = wndProc;
wclsxlpszClassName = className;
wclsxlpszMenuName = NULL;
wclsxstyle = NULL;
if (!RegisterClassEx(&wclsx))
return NULL;
HWND tmphWnd=CreateWindow(className,appName,WS_OVERLAPPEDWINDOW,
rectleft, recttop, rectright, rectbottom,
NULL, 0, GetModuleHandle(NULL), NULL);
return tmphWnd;
}
HRESULT CALLBACK wndProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
switch (uMsg)
{
case WM_CLOSE:
PostQuitMessage(0);
break;
}
return DefWindowProc(hWnd,uMsg,wParam,lParam);
}
int WINAPI WinMain(HINSTANCE hInst,HINSTANCE,LPSTR szCommand,int)
{
MSG msg;
RECT rc={0,0,100,100 };
HWND hWnd=NewWindow(hInst,NULL,"Test","Test",rc,wndProc);
ShowWindow(hWnd,SW_NORMAL);
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}

点击电脑开始菜单,打开运行窗口,在窗口编辑框里输入cmd,点击确定按钮,打开cmd命令窗口,然后进入你的工程目录中的可执行程序文件夹下。
输入可执行程序文件名 后面带上你需要的参数 按Enter键 就可以了。
cmd命令:如你的可执行程序在D://CP//debug/aaexe,需要在命令行窗口输入d:按Enter键进入D盘:cd CP/debug按Enter键进入D盘中CP目录debug子目录中,输入aaexe 2 3 按Enter键运行你的程序 结果就会出现:2000000 to the 3000000 power = 8

#include <windowsh>
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
MessageBox (NULL, TEXT ("Hello, bccn!"), TEXT ("HelloMsg"), 0) ;
return 0 ;
}

楼主
首先这不是c与c#区别
你学c#的时候之所以有这些控件,能进行界面编辑是因为你建的是winform程序,在编辑的时候实际上也是有代码控制的。如果你c#建的是控制台程序的话就会与c语言一样了,但是你在应用中加入 using SystemWindowsForms;那么就可以调用winform程序的控件了。
一般的话你是为了学习一种语言的话建议学习控制台应用程序。如果用界面的话对你语言学习没有什么好处,反而会让你分心。当你真真学习做一个项目的时候可以用winform来了。反正当你学习到一定程度你就会明白其中的关系了。
对于c语言的话我本人只用过控制台,通过代码来创建窗口,也是可以产生你所需要的效果的。
你要明白现在你要学的是一门语言,你要懂得语法等知识,而不是费心去拉几个控件,所以好好的学好基础吧。c#的话也在控制台上来联系。你要学的不是开发工具,所以不要把精力浪费在这里,而且还把自己搞得乱七八糟的。
至于楼上的,vc是c++的编译工具,只不过可以运行c语言程序而已,楼主用的工具比vc好的多,vc老了,楼主的才是新版,不用理会

C语方下可以在文本模式下作出,也可以在图形模式下画出,用的是一些扩展库,就是说不是C标准库,下面给一个框架,不知道建不建议学,感觉过时了,看你自已的兴趣了,感兴趣下了功夫肯定能学好,因为它根本就不难,只不过用了些非标准库的所谓高级函数而已
#include <processh>
#include <dosh>
#include <conioh>
#define Key_DOWN 0x5100
#define Key_UP 0x4900
#define Key_ESC 0x011b
#define Key_ALT_F 0x2100
#define Key_ALT_X 0x2d00
#define Key_ENTER 0x1c0d

void box(int startx,int starty,int high,int width);

main()
{
int i,key,x,y,l;
char menu[] = {"File","Edit","Run","Option","Help","Setup","Zoom","Menu"};
/ 主菜单各项 /
char red[] = { "F","E","R","O","H","S","Z","M" }; / 加上红色热键 /
char f[] = {"Load file", "Save file", "Print", "Modify ", "Quit A1t_x"};
/ File 项的子菜单 /
char buf[16102],buf1[162]; / 定义保存文本的缓冲区 /

while(1)
{
textbackground(BLUE);
clrscr();
textmode(C80);
window(1,1,80,1);/ 定义显示主菜单的窗口 /
textbackground(LIGHTGRAY);
textcolor(BLACK);
clrscr();
gotoxy(5,1);
for(i=0,l=0;i<8;i++)
{
x=wherex(); / 得到当前光标的坐标 /
y=wherey();
cprintf("%s",menu[i]); / 显示各菜单项 /
l=strlen(menu[i]); / 得到菜单项的长度 /
gotoxy(x,y);
textcolor(RED);
cprintf("%s",red[i]); / 在主菜单项各头字符写上红字符 /
x=x+l+5;
gotoxy(x,y);
textcolor(BLACK); / 为显示下一个菜单项移动光标 /
}
gotoxy(5,1);

key=bioskey(0);
switch (key){
case Key_ALT_X:
exit(0); / ALT_X 则退出 /
case Key_ALT_F:
{
textbackground(BLACK);
textcolor(WHITE);
gotoxy(5,1);
cprintf("%s",menu[0]); / 加黑 File 项 /
gettext(5,2,20,12,buf); / 保存窗口原来的文本 /
window(5,2,20,9);/ 设置作矩形框的窗口 /
textbackground(LIGHTGRAY);
textcolor(BLACK);
clrscr();
box(1,1,7,16); / 调用作框函数 /
for(i=2;i<7;i++) / 显示子菜单各项 /
{ gotoxy(2,i);
cprintf("%s",f[i-2]);
}
gettext(2,2,18,3,buf1); /将下拉菜单的内容保存在 buf1/
textbackground(BLACK);
textcolor(WHITE);
gotoxy(2,2);
cprintf("%s",f[0]);/加黑下拉菜单的第一项 load file/
gotoxy(2,2);
y=2;

while ((key=bioskey(0))!=Key_ALT_X) / 等待选择下拉菜单项/
{
if ((key==Key_UP)||(key==Key_DOWN))
{
puttext(2,y,18,y+1,buf1); / 恢复原先的项 /
if (key==Key_UP)
y=y==26:y-1;
else
y=y==62:y+1;
gettext(2,y,18,y+1,buf1);/保存要压上光条的子菜单项/
textbackground(BLACK);
textcolor(WHITE);
gotoxy(2,y);
cprintf("%s",f[y-2]); / 产生黑条压在所选项上 /
gotoxy(2,y);
}
else
if (key==Key_ENTER)/ 若是回车键,判断是哪一子菜单按的回
车,在此没有相应的特殊处理/
{
switch ( y-1 ){
case 1: / 是子菜单项第一项:Load file /
break;
case 2: / Save file /
break;
case 3: / print /
break;
case 4: / modify /
break;
case 5:
exit(0);
default:
break;
}
break;
}
else
if (key==Key_ESC)
break; / 是 Esc 键,返回主菜单 /
}
if (key==Key_ALT_X) exit(0);
break;
}
}
}
}

void box(int startx,int starty,int high,int width) / 画矩形框函数 /
{ int i;
gotoxy(startx,starty);
putch(0xda); / 画┌ /
for (i=startx+1;i<width;i++) putch(0xc4); / 画— /
putch(0xbf); / 画┐ /
for( i=starty+1;i<high;i++)
{
gotoxy(startx,i);putch(0xb3); / 画│ /
gotoxy(width,i);putch(0xb3); / 画│ /
}
gotoxy(startx,high);
putch(0xc0); / 画└ /
for (i=startx+1;i<width;i++) putch(0xc4); / 画— /
putch(0xd9); / 画┘ /
return ;
}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/10252535.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存