如何在软件界面上实现一个Email的链接,点击后自动新建邮件?
如何在软件界面上实现一个Email的链接,点击后自动新建邮件?
如何调用我知道,用ShellExecute,问题是如何让它变成Email链接的样子。
不要模拟,要真的实现。
问题点数:0、回复次数:8Top
1 楼kevincsdn(找不到好的用户名)回复于 2003-06-03 23:34:33 得分 0
upTop
2 楼kingcaiyao(aking)回复于 2003-06-03 23:52:16 得分 0
这样试试:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
::ShellExecute(Handle,"open","mailto:kingcaiyao@163.com",NULL,NULL,SW_SHOW);
}
Top
3 楼kevincsdn(找不到好的用户名)回复于 2003-06-03 23:58:16 得分 0
上面的代码我知道,我想问的是:
如何让email地址变成蓝色,鼠标放上去变成手的形状,字体变色。
模拟这样的效果我也会,我想知道真正如何实现。Top
4 楼zywx(Waterun)回复于 2003-06-04 00:00:25 得分 0
什么是真正的如何实现,只有在网页上才是真正的,那你不如用CppWebBrowser了Top
5 楼kingcaiyao(aking)回复于 2003-06-04 00:12:30 得分 0
To kevincsdn:
你自已做个label控件不就行了吗?给出代码:
class TURLLabel:public TLabel
{
private:
String FURL;
public:
__fastcall TURLLabel(TComponent *Owner);
void __fastcall SetURL(AnsiString sURL);
protected:
DYNAMIC void __fastcall Click();
__published:
__property String URL={read=FURL,write=SetURL};
};
.cpp File
//Constructor
__fastcall TURLLabel::TURLLabel(TComponent *Owner):TLabel(Owner)
{
Cursor=crHandPoint;
Color=clBlue;
Font->Style<<fsUnderline;
}
void __fastcall TURLLabel::SetURL(String sURL)
{
if(FURL!=sURL)
{
FURL=sURL;
}
}
void __fastcall TURLLabel::Click()
{
::ShellExecute(Parent->Handle,"open",FURL.c_str(),NULL,NULL,SW_SHOW);
}
//随手写的,你自已去调试吧。
Top
6 楼kevincsdn(找不到好的用户名)回复于 2003-06-04 00:14:37 得分 0
我得意思是如何让Windows自己识别该字符串为Email的链接。
VC中好像用CHyperLink...Top
7 楼kevincsdn(找不到好的用户名)回复于 2003-06-04 00:20:02 得分 0
To kingcaiyao(AKing) :
这个办法我知道,这就是模拟的效果,但效果不好,效率低,在程序比较忙的时候,鼠标手的形状和链接的颜色都经常变不过来。Top
8 楼kingcaiyao(aking)回复于 2003-06-04 00:28:05 得分 0
to kevincsdn:
你说的让windows来实现,可以用API来实现,Windows操作系统有一个关于HyperLink的COM对象和几个接口IPersistStream,IDataObject,IHlinkSite,可以通过MSDN中的函数写出来。Top



