set link for CAknMessageQueryDialog
2010-11-18 17:04
405 查看
要给CAknMessageQueryDialog 加两个link, 一个是Url的, 一个是MailBox的
这就有一个问题, 直接用CAknMessageQueryDialog的Setlink功能的时候, 不管你是哪种type, 只要聚焦到link上面的时候总会是view的softkey
正常情况下, 我们需要在link是在mailbox的时候菜单显示成"Mailo" or something.
这个情况下, 以前的功能就不够用了
尝试着访问CAknMessageQueryControl, 但是能用的几个函数都没有IMPORT出来
所以还是只能从UI下手
首先, 得检验当前的focus是不是在link上面
control里面有一个IsHighLighted, 但是用不了(呵呵, 废话), 所以用笨办法
监控按键事件, 然后在里面判断当前的cba里面有没有CAknSoftKeyView, 有的话说明当前肯定是聚焦的
好了, 第一部分的任务解决了, 下面的重点 怎么样确定当前的type是哪种类型的呢
分三步走:
1。 在setlink 和setcallback的时候把type 带进去:
struct LinkStr
{
CFindItemEngine::TFindItemSearchCase iLinkType;
TBuf<KMaxServerNameLength> iLinkText;
};
2。定义一个静态变量来保存当前的typa值:
static CFindItemEngine::TFindItemSearchCase iCurrentType;
3。 当每次检测出当前focus的时候, 调用一下callback, 这个是用:
ProcessCommandL(EAknSoftkeyView);
然后在callback中获得当前的type值
TInt HandleLinkL( TAny* aPtr )
{
LinkStr * aLink = (LinkStr *)aPtr;
iCurrentType = aLink->iLinkType;
return 0;
}
4。 得到这个值以后, cba->SetCommandL(EAknSoftkeyView, _L("MailTo"));
好了, 大概步骤就是这么多了
看得很纠结阿
这就有一个问题, 直接用CAknMessageQueryDialog的Setlink功能的时候, 不管你是哪种type, 只要聚焦到link上面的时候总会是view的softkey
正常情况下, 我们需要在link是在mailbox的时候菜单显示成"Mailo" or something.
这个情况下, 以前的功能就不够用了
尝试着访问CAknMessageQueryControl, 但是能用的几个函数都没有IMPORT出来
所以还是只能从UI下手
首先, 得检验当前的focus是不是在link上面
control里面有一个IsHighLighted, 但是用不了(呵呵, 废话), 所以用笨办法
监控按键事件, 然后在里面判断当前的cba里面有没有CAknSoftKeyView, 有的话说明当前肯定是聚焦的
好了, 第一部分的任务解决了, 下面的重点 怎么样确定当前的type是哪种类型的呢
分三步走:
1。 在setlink 和setcallback的时候把type 带进去:
struct LinkStr
{
CFindItemEngine::TFindItemSearchCase iLinkType;
TBuf<KMaxServerNameLength> iLinkText;
};
2。定义一个静态变量来保存当前的typa值:
static CFindItemEngine::TFindItemSearchCase iCurrentType;
3。 当每次检测出当前focus的时候, 调用一下callback, 这个是用:
ProcessCommandL(EAknSoftkeyView);
然后在callback中获得当前的type值
TInt HandleLinkL( TAny* aPtr )
{
LinkStr * aLink = (LinkStr *)aPtr;
iCurrentType = aLink->iLinkType;
return 0;
}
4。 得到这个值以后, cba->SetCommandL(EAknSoftkeyView, _L("MailTo"));
好了, 大概步骤就是这么多了
看得很纠结阿
相关文章推荐
- 关于在CAknMessageQueryDialog里显示中文的问题
- S60自定义对话框(继承CAknDialog和CAknTextQueryDialog)
- The method setButton(int, CharSequence, Message) in the type AlertDialog is not applicable for the a
- S60自定义对话框(继承CAknDialog和CAknTextQueryDialog)
- S60自定义对话框(继承CAknDialog和CAknTextQueryDialog)
- AAPT err(Facade for 1742568639) : No Delegate set : lost message:\\?\C:\Users\陈健\.android\build-cach
- AlertDialog.setMessage不显示的问题
- Set InitialDirectory for FolderBrowserDialog (转载)
- 关闭CAknWaitDialog的CANCEL能力
- AAPT err(Facade for 1191041091) : No Delegate set : lost message:libpng error: Not a PNG file
- [Graphics] UIColor created with component values far outside the expected range, Set a breakpoint on UIColorBreakForOutOfRangeColorComponents to debug. This message will only be logged once.
- symbian s60 CAknSelectionListDialog继承子类的使用
- Set Title for JFace Custom Dialog
- AAPT err(Facade for 1191041091) : No Delegate set : lost message:libpng error: Not a PNG file
- MySQL-Communication link failure, message from server: "Can't get hostname for your address"
- Database returned an invalid value in QuerySet.datetimes(). Are time zone definitions for your datab
- how to use the CAknwaitDialog
- REP-20147 Cannot implement column link for this detail SQL query. Converting to group link.
- Link - Windows Universal App - Open Url/Rate the App/MessageDialog
- How to use the CAknWaitDialog