uedit.dll文件可以放在vfp9的default目录下吗?还需要做什么
图片附件: 游客没有浏览图片的权限,请
登录 或
注册
以下是引用吹水佬在2025-8-20 08:41:48的发言:
测试了一下,用windows api也可以用EDIT控件
有兴趣可以参考测试代码
CLEAR
CLEAR ALL
PUBLIC cDefPath
cDefPath = ADDBS(JUSTPATH(SYS(16)))
SET DEFAULT TO (cDefPath)
DECLARE Long SetFocus IN user32 long
DECLARE Long CreateUEdit IN UEdit long
DECLARE Long DestroyUEdit IN UEdit long
DECLARE Long SetUEditText IN UEdit long,string
DECLARE Long SetFont IN UEdit long,long,string
of = CREATEOBJECT("formUEdit")
of.show()
READ EVENTS
CLOSE TABLES ALL
CLEAR ALL
RETURN
DEFINE CLASS formUEdit as Form
ShowWindow = 2
hUEdit = 0
PROCEDURE Activate
this.hUEdit = CreateUEdit(this.hWnd)
SetFont(this.hUEdit, 24, "Arial")
SetFocus(this.hUEdit)
SetUEditText(this.hUEdit, STRCONV(0h7369C58B00,12))
ENDPROC
PROCEDURE Destroy
DestroyUEdit(this.hUEdit)
CLEAR EVENTS
ENDPROC
ENDDEFINE
为测试方便用C写UEdit.dll给vfp调用
#define DLLIMPORT __declspec(dllexport)
#include <windows.h>
HINSTANCE hInstance = NULL;
DLLIMPORT void SetUEditText(HWND hWndUEdit, LPCWSTR pWSTR)
{
SetWindowTextW(hWndUEdit, pWSTR);
}
DLLIMPORT void SetFont(HWND hWndUEdit, int cHeight, LPCSTR pFontName)
{
HFONT hFont = CreateFont(cHeight, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, DEFAULT_CHARSET,
OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,
DEFAULT_PITCH, pFontName);
SendMessage(hWndUEdit, WM_SETFONT, (WPARAM)hFont, TRUE);
}
DLLIMPORT void DestroyUEdit(HWND hWndUEdit)
{
DestroyWindow(hWndUEdit);
}
DLLIMPORT HWND CreateUEdit(HWND hWndParent)
{
return CreateWindowExW(
0, // 无扩展样式
L"EDIT", // 预定义EDIT类名
L"", // 初始文本为空
WS_CHILD | WS_VISIBLE | WS_BORDER | ES_MULTILINE, // 样式
10, 10, 100, 100, // 位置和尺寸
hWndParent, // 父窗口句柄
0, // 控件ID
hInstance, // 程序实例句柄
NULL // 无附加参数
);
}
BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved)
{
switch(fdwReason)
{
case DLL_PROCESS_ATTACH:
{
hInstance = hinstDLL;
break;
}
}
return TRUE;
}