myy() 、c2y()、iYoung() 请到这里来。

Atomictry 2003-04-13 06:38:30
还要再给点分。请不要觉得少啊。^_^
...全文
82 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
Atomictry 2003-04-17
  • 打赏
  • 举报
回复
To c2y():您不来,我只好揭贴了。在http://expert.csdn.net/Expert/topic/1654/1654245.xml?temp=.6297266中我已经牺牲了myy()、iYoung()两位的利益了。:),不过在这里我把分只能给他们两位了。
iYoung 2003-04-15
  • 打赏
  • 举报
回复
别客气
Atomictry 2003-04-15
  • 打赏
  • 举报
回复
我本来以为您们会按照我的思路(用键值做下去),那是我水平奇差,没想到有这么多方法。下次我注意啦。对不住您们,也真谢谢您们。

To iYoung():我本来也没想到您们会用UPPERCASE/LOWERCASE来做,我是把ESC键当作一个切换键,而0-9作为字母和数字复用。真对不住了。

To myy() :要是早说清楚,您应该早就帮我解决了。对不住。^_^

还等那位c2y()先生(小姐)。
myy 2003-04-14
  • 打赏
  • 举报
回复
说句楼主可能不爱听的话:

看了你原贴后来的回帖......

我觉得你今后提问,应该尽量 清楚、明白、准确、完整的把意思表达出来,这样人家才好回答,
避免做 N 多的无用功。
iYoung 2003-04-14
  • 打赏
  • 举报
回复
来了。
你确定你要的是:用 ESC 键切换 MEMO 中所有字符的大小写状态吗?
还是:用 ESC 键切换 Caps Lock 键的状态?或者用 ESC 键充当 Caps Lock 键的功能?

//我也有点糊涂了
Atomictry 2003-04-13
  • 打赏
  • 举报
回复
不改了?
确信不改了?
呵呵...
myy 2003-04-13
  • 打赏
  • 举报
回复
还是不对,呵呵,最终版本-------------------------->

void __fastcall TForm1::Memo1KeyPress(TObject *Sender, char &Key)
{
if(Key==27)
{
DWORD mml=GetWindowLong(Memo1->Handle,GWL_STYLE);
if(mml & ES_LOWERCASE)
{
SetWindowLong(Memo1->Handle,GWL_STYLE,mml & ~ES_LOWERCASE| ES_UPPERCASE);
Caption="大写模式";
}
else
{
if(mml & ES_UPPERCASE)
{
SetWindowLong(Memo1->Handle,GWL_STYLE,mml & ~ES_UPPERCASE);
Caption="普通模式";
}
else
{
SetWindowLong(Memo1->Handle,GWL_STYLE,mml | ES_LOWERCASE);
Caption="小写模式";
}
}
}
}
myy 2003-04-13
  • 打赏
  • 举报
回复
更正:
SetWindowLong(Memo1->Handle,GWL_STYLE,mml & ~ES_UPPERCASE);
Caption="普通模式";
myy 2003-04-13
  • 打赏
  • 举报
回复


if(Key==27)
{
DWORD mml=GetWindowLong(Memo1->Handle,GWL_STYLE);
if(mml & ES_LOWERCASE)
{
SetWindowLong(Memo1->Handle,GWL_STYLE,mml | ES_UPPERCASE);
Caption="大写模式";
}
else
{
if(mml & ES_UPPERCASE)
{
SetWindowLong(Memo1->Handle,GWL_STYLE,mml & ~ES_LOWERCASE);
Caption="普通模式";
}
else
{
SetWindowLong(Memo1->Handle,GWL_STYLE,mml | ES_LOWERCASE);
Caption="小写模式";
}
}
}
Atomictry 2003-04-13
  • 打赏
  • 举报
回复
不是的。就是做一个和Caps Lock一样功能的东西。
myy 2003-04-13
  • 打赏
  • 举报
回复
不要告诉我,你要做Word那样的“自动更正/纠错”的功能,那是比较复杂的,
不过象UltraEdit那样的,选中文字,alt+F5,ctrl+F5切换大小写到很容易:

Memo1->SelText=Memo1->SelText.LowerCase();

Memo1->SelText=Memo1->SelText.UpperCase();
Atomictry 2003-04-13
  • 打赏
  • 举报
回复
我想把ESC键定义为象Caps Lock的功能,所以我在Memo1的KeyDown中进行设置标志:
if(Key==27)
(
if(sign==1) sign=0;
else sign=1;
}

再在Memo1的OnChange中分别对sign=1和sign=0做判断。可是就有问题了。不仅CapsLock键
没用了。而且一直是小写。唉...
myy 2003-04-13
  • 打赏
  • 举报
回复
什么叫“大小写切换”?

int iCP;
iCP=Memo1->SelStart;
Memo1->Text=Memo1->Text.LowerCase();
Memo1->SelStart=iCP;
SetWindowLong(Memo1->Handle,GWL_STYLE,GetWindowLong(Memo1->Handle,GWL_STYLE) | ES_LOWERCASE);

不就转了吗?
Atomictry 2003-04-13
  • 打赏
  • 举报
回复
就单纯转为大写或小写是可以的。但我怎么做都不能进行大小写切换。郁闷中......
myy 2003-04-13
  • 打赏
  • 举报
回复
SetWindowLong....写在Form的OnCreate里,我试过,可以的。
myy 2003-04-13
  • 打赏
  • 举报
回复
呵呵,笑纳,笑纳。

顺便问一句,哪个问题啊??

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧