iceDispImg 随窗体大小改变显示(可满屏)
>
有两种方法可以建立视窗来实现录入资料。
一种是选择你要录入资料的区域,再通过选单“工具”->“记录单”,EXCEL就会d出一个数据录入窗体。
第二种方法是按“ALT+F11”进入VBA编辑器,在这里,你可以插入一个使用者窗体,这个可能对没有接触过程式设计的人来说有些复杂,但功能确实比前一种方法要强劲得多了。
怎样在Excel中建立一个巨集方法一,录制巨集,
方法二,直接按ALT+F11开启VBE编辑器,写程式码
怎样建立一个PB主视窗file-new-PB object - window
怎样在excel中建立一个工作表?开启工作簿,在下方随便一个工作表名称上点选右键(比如Sheet1),选择 插入,选择工作表,就可以了,你可以右键给工作表改名,变颜色等等
如何用VC60在 dllmain中建立一个dialog视窗呼叫DLL有两种方法:静态呼叫和动态呼叫
(一)静态呼叫其步骤如下:
1把你的youAppDLL拷到你目标工程(需呼叫youAppDLL的工程)的Debug目录下;
2把你的youApplib拷到你目标工程(需呼叫youAppDLL的工程)目录下;
3把你的youApph(包含输出函式的定义)拷到你目标工程(需呼叫youAppDLL的工程)目录下;
4开启你的目标工程选中工程,选择Visual C++的Project主选单的Settings选单;
5执行第4步后,VC将会d出一个对话方块,在对话方块的多页显示控制元件中选择Link页。然后在Object/library modules输入框中输入:youApplib
6选择你的目标工程Head Files加入:youApph档案;
7最后在你目标工程(cpp,需要呼叫DLL中的函式)中包含你的:#include "youApph"
注:youApp是你DLL的工程名。
(二)动态呼叫其程式如下:
动态呼叫时只需做静态呼叫步骤1
01 {
02 HINSTANCE hDllInst = LoadLibrary("youAppDLL");
03 if(hDllInst)
04 {
05 typedef DWORD (WINAPI MYFUNC)(DWORD,DWORD);
06 MYFUNC youFuntionNameAlias = NULL;
07 youFuntionNameAlias 函式别名
08 youFuntionNameAlias = (MYFUNC)GetProcAddress(hDllInst,"youFuntionName");
09 youFuntionName 在DLL中宣告的函式名
10 if(youFuntionNameAlias)
11 {
12 youFuntionNameAlias(param1,param2);
13 }
14 FreeLibrary(hDllInst);
15 }
16 }
显式(静态)呼叫:
LIB + DLL + H,注意H中dllexport改为dllimport
隐式(动态)呼叫:
DLL + 函式原型宣告,先LoadLibrary,再GetProcAddress(即找到DLL中函式的地址),不用后FreeLibrary
如何在Dll中建立一个带有Web Browser的视窗
dll不拥有任何资源,在DLL中生成一个CWnd的例项,该视窗归载入DLL的APP所有。
怎样用mfc建立一个静态视窗?位址列属性设定为不可编辑就可以了。位址列也是一个控制元件做的啊,它也是有属性的
怎样使用MFC建立一个视窗类建立一个完整视窗要经历的步骤:
1)设计一个视窗类;
2)注册视窗类;
3)建立视窗;
4)显示及更新视窗。
第一步:
windows 已经为使用者定义了一个完整的视窗类,使用者只需要将各个属性填满既可以。视窗类是一个 结构体,其定义如下:
typedef struct _WNDCLASS{
UINT style;class style
WNDPROC lpfnWndProc;
int cbClsExtra;
int cbWndExtra;
HANDLE hInstance;
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackground;
LPCTSTR lpszMenuName;
LPCTSTR lpszClassName;
}WNDCLASS;
第二步:
用RegisterClass(&wndclass)来定义的视窗注册。
第三步:建立视窗
1)定义一个控制代码,然后用CreateWindow()来为控制代码赋值。函式用法参看MSDN。建立视窗必须依据已经宣告并且已经注册的视窗型别来建立。
HWND CreateWindow(
LPCTSTR lpClassName,定义的视窗类名
LPCTSTR lpWindowName,视窗的名字,将会在标题栏上显示出来的
DWORD dwStyle,视窗的风格(视窗的外观模式和功能按钮等等)
int x,视窗初始位置ws_usedefault
int y,同上
int nWidth,视窗的宽度,可以用ws_usedefault
int nHeight,视窗高度,可以用ws_usedefault
HWND hWndParent,父视窗的控制代码,单一视窗则设定为空
HMENU hMenu,选单的控制代码,如果没有选单则将这个控制代码设定为空
HINSTANCE hInstance,由系统进行分配标识
LPVOID lpParam一般设定为空
);
第四步:显示视窗
呼叫ShowWindow()函式来显示视窗。
ShowWindow(
HWND hWnd,要显示的视窗的控制代码
int nCmdShow显示视窗的模式,如:最大化最小花显示
)
第五步:更新视窗
在显示视窗的函式呼叫完毕以后呼叫UpdateWindow()来对窗体进行更新
UpdateWindow(hwnd);这个函式没有并不影响讯息产生。
讯息回圈
MSG msg;定义了一个讯息结构体变数
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
/
GetMessage(
LPMSG lpMsg,
讯息结构提的指标,无需对这个讯息结构提的内部成员初始化,
这个只需将定义的结构体的地址传到这里
HWND hWnd,
视窗控制代码,指明要获得的是那个视窗的讯息,如果要获取所有视窗的讯息则
定义为NULL
UINT wMsgFilterMin,
用来指定要从讯息伫列里边取得的最小值,
UINT wMsgFilterMax
用来指定要从讯息伫列里边取得的最大值,
/
这两个引数用来限制GETMESSAGE 在讯息伫列里边的取值范围,
以去处调一些确定不感兴趣的讯息
if要从讯息伫列中所有的讯息中提取的话则两个引数均设定为
零
/
);从呼叫程式执行绪讯息伫列中取讯息
/
有了建立视窗的整个流程以后,现在就开始定义视窗过程,用WindowProc()
LRESULT CALLBACK WindowProc(/函式名字可以更改,但是引数不允许改变/
HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam
);引数和讯息结构提的前四个引数相同,事实上系统在呼叫视窗过程函式
的时候自动将讯息结构体的前四个引数传递到视窗过程
描述在d盘视窗中建立一个资料夹双击 “我的电脑”(或计算机),开启后双击“本底磁碟D”,然后,滑鼠随便在d盘中选择一个位置,单击右键,选择“新建”,选择“资料夹”,这时就在D盘出现了一个“新建资料夹”的资料夹,此时你还可以将资料夹的名字改为你需要的名称。
怎么建立一个视窗这个程式过程中,主要是查阅MSDN文件, 这个文件很实用。
方法如下:
#include<stdioh>
#include<windowsh>
视窗过程函式
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
PAINTSTRUCT ps;
HDC hDc;
char str[64]="阿浪网易部落格 :blog163/wenxianliang08@126/";
switch(message)
{
case WM_PAINT:
hDc=BeginPaint(hwnd,&ps);
TextOut(hDc,100, 100, str, strlen(str));
EndPaint(hwnd, &ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd, message, wParam, lParam);
break;
}
return 0;
}
int WINAPI WinMain(HINSTANCE hInstance, 当前执行例项的控制代码
HINSTANCE hPrevInstance, 先前例项的控制代码,基于Win32开发,预设为NULL
LPSTR lpCmdLine, 命令列
int nCmdShow 视窗显示模式
)
{
char szClassName[64]="阿浪部落格(视窗类)"; 初始化视窗类的名称
WNDCLASS wndclass; 定义视窗类结构体 变数
wndclasscbClsExtra=0;
wndclasscbWndExtra=0;
wndclasshbrBackground= (HBRUSH)GetStockObject(DKGRAY_BRUSH); 灰色画刷
wndclasshCursor=LoadCursor(NULL, IDC_ARROW) ; 载入标准游标
wndclasshIcon=LoadIcon(NULL, IDI_APPLICATION) ; 载入标准图示
wndclasshInstance=hInstance;
wndclasslpfnWndProc=WndProc ;
wndclasslpszClassName=szClassName;
wndclasslpszMenuName=NULL; 选单设定为NULL
wndclassstyle=CS_HREDRAW|CS_VREDRAW;
if(!RegisterClass(&wndclass)) 注册所初始化的视窗类
{
MessageBox(NULL,"视窗类注册失败!","讯息提示",MB_OK);
return 1;
}
HWND hwnd;
char WindowName[64]="温先良(视窗名)"; 视窗名
hwnd=CreateWindow(
szClassName,
WindowName,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT,
500,400,
NULL,
NULL,
hInstance,
NULL
); 建立所注册的视窗类
if(!hwnd)
{
MessageBox(NULL, "视窗建立失败", "讯息提示", MB_OK);
return 1;
}
ShowWindow(hwnd, SW_SHOWNORMAL);
UpdateWindow(hwnd);
MSG msg;
while(GetMessage(&msg, hwnd, 0, 0)) 从讯息伫列里获取讯息
{
TranslateMessage(&msg); 讯息转换
DispatchMessage(&msg); 讯息传送到视窗过程函式
}
return 0;
}
它在我的机器上是这样定义的:
#define __in __pre __valid __pre __deref __readonly
__pre等等在我的机器上定义是这样的:
#define __pre
基本上__in表示一个输入的参数,是一个编译选项,可能对于其他的编译器它不会是空的
在你的机器上应该也是和我的定义一样。
这是我之前写的一个 易语言做的取网页源码的 你可以参考下
void CMyDlg::OnOK()
{
// TODO: Add extra validation here
HINSTANCE hMod = LoadLibrary("MyDlldll");
//载入Mydlldll
typedef char (WINAPI ADD)(CString);
//添加一个函数 char 返回字符串 WINAPI ADD添加 CString 输入字符串
ADD App_Add = (ADD)GetProcAddress(hMod,"App_Add");
//添加函数名
CString str;
//设置个字符串变量
char sc;
//char 字符串 sc
CString URL;
//CString 为网址
GetDlgItemText(IDC_EDIT2,URL);
//获取IDC_EDIT2 为编辑框的ID URL 获取编辑框的内容
sc=App_Add(URL);
//App_Add 为函数 执行 获取URL网址源码, 传递参数为字符串 URL sc获取源码
str=(sc);
//sc char 转成CString
GetDlgItem(IDC_EDIT1)->SetWindowText(str);
//把转好的str输入到编辑框1ID为 IDC_EDIT1
sc=App_Add(">
delphi 的 inputBox 函数,定义于 Dialogs 单元,其代码如下:
代码的核心是调用的 InputQuery 函数:
通常情况下 InputBox 是不显示密码代替符的,如果想要显示,有以下办法:
1、修改 InputQuery 函数源代码,使其支持显示密码符。
2、直接建立一个 InputBox 的窗体。
3、使用 WinAPI 函数,查找 InputBox 的窗体,然后发送 EM_SETPASSWORDCHAR 消息。
unit Unit1;interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
const InputboxMessage = WM_USER + 200; //定义消息
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
procedure InputboxPassword(var MSG: TMessage); message InputBoxMessage;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R dfm}
procedure TForm1Button1Click(Sender: TObject);
begin
PostMessage(Handle,InputboxMessage,0,0); //发送消息
inputbox('a','b','ssss')
end;
procedure TForm1InputboxPassword(var MSG: TMessage);
var
InputForm,Hedit: THandle;
begin
InputForm:= ScreenForms[0]Handle;
if InputForm <> 0 then
begin
Hedit:= FindWindowEx(InputForm,0,'Tedit',nil);
SendMessage(Hedit,EM_SETPASSWORDCHAR,Ord(''),0);
end;
end;
end
以上就是关于本菜鸟想用VC编个全屏图像输出并在图像指定位置设置输入框,该用哪几个函数,还有格式也帮忙写下全部的内容,包括:本菜鸟想用VC编个全屏图像输出并在图像指定位置设置输入框,该用哪几个函数,还有格式也帮忙写下、我需要向第三方的程序的文本框中赋值。代码如下,但是一直获取不到窗口的句柄、怎样在EXCEL中建立一个录入视窗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)