Re: mdi with splitter and edit controls, cut , copy and paste fixed

"Nenad Stefanović [email protected] [wtl]" <[email protected]> Sun, 20 Sep 2020 22:02:38 -0700
Newsgroups gmane.comp.windows.wtl
Message-ID <CAK3Hp+_uoRfs3oHp4yQ-T3mquEFRD_=zPpj6r-qROS=On7=FDg@mail.gmail.com>
--00000000000004b0b305afcbc36d
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi Fernando,

CEditCommands and CRichEditCommands are convenient ways to handle those
commands for simple cases.

As your project became more complicated and your window hierarchy is more
complicated, I don't think that it is worth insisting on using
CEditCommands and CRichEditCommands.

It would be much better if you move those handlers to CMainFrame. You have
access to all child windows in the hierarchy from there.

Cheers,
Nenad


On Thu, Sep 17, 2020 at 12:22 AM Fernando Fiore [email protected] [wtl]
<[email protected]> wrote:

>
>
> I've created an MDI project with an horizontal splitter and an edit
> control in the bottom. It was hard but i managed to fix cut, copy and pas=
te
> first i had to define this macro
>
>    1. CHAIN_COMMANDS_MEMBER_ID_RANGE(theChainMember, idFirst, idLast)
>    2. assing m_hWndClient to the splitter
>    3. set the parent of m_hWndMDIClient to the splitter
>    4. check part of the implementation here https://pastebin.com/QvRSQ2xz
>
> If anybody wants the project, email me
> Hey Nenad add my macro to WTL
>
>=20
>

--00000000000004b0b305afcbc36d
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable




<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/htm=
l4/strict.dtd">
<html>
<head>
</head>






=20
<body style=3D"background-color: #fff;">
<span style=3D"display:none">&nbsp;</span>

<!--~-|**|PrettyHtmlStartT|**|-~-->
<div id=3D"ygrp-mlmsg" style=3D"position:relative;">
  <div id=3D"ygrp-msg" style=3D"z-index: 1;">
<!--~-|**|PrettyHtmlEndT|**|-~-->

    <div id=3D"ygrp-text" >
=20=20=20=20=20=20
=20=20=20=20=20=20
      <p><div dir=3D"ltr">Hi Fernando,<div><br></div><div>CEditCommands and=
=C2=A0CRichEditCommands are convenient ways to handle those commands for si=
mple cases.<br></div><div><br></div><div>As your project became more compli=
cated and your window hierarchy is more complicated, I don&#39;t think that=
 it is worth insisting on using CEditCommands and=C2=A0CRichEditCommands.</=
div><div><br></div><div>It would be much better if you move those handlers=
=C2=A0to CMainFrame. You have access to all child windows in the hierarchy =
from there.</div><div><br></div><div>Cheers,</div><div>Nenad</div><div><br>=
</div></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_=
attr">On Thu, Sep 17, 2020 at 12:22 AM Fernando Fiore <a href=3D"mailto:no5=
[email protected]">[email protected]</a> [wtl] &lt;<a href=3D"mailto:w=
[email protected]">[email protected]</a>&gt; wrote:<br></div><blockquote=
 class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px so=
lid rgb(204,204,204);">


<u></u>









=20
<div style=3D"background-color:rgb(255,255,255);">
<span>=C2=A0</span>


<div id=3D"gmail-m_4805406298041930736ygrp-mlmsg">
  <div id=3D"gmail-m_4805406298041930736ygrp-msg">


    <div id=3D"gmail-m_4805406298041930736ygrp-text">
=20=20=20=20=20=20
=20=20=20=20=20=20
      <p></p><div dir=3D"ltr"><div dir=3D"ltr"><div>I&#39;ve created an MDI=
 project with an horizontal splitter and an edit control in the bottom. It =
was hard but i managed to fix cut, copy=C2=A0and paste</div><div dir=3D"ltr=
">first i had to define this macro<div><ol style=3D"padding:0px 10px;font-s=
ize:12px;vertical-align:baseline;background-repeat:initial;font-family:Cons=
olas,Menlo,Monaco,&quot;Lucida Console&quot;,&quot;Liberation Mono&quot;,&q=
uot;DejaVu Sans Mono&quot;,&quot;Bitstream Vera Sans Mono&quot;,monospace,s=
erif;margin:0px;"><li style=3D"color:rgb(172,172,172);padding:0px;vertical-=
align:baseline;list-style-type:decimal;background-repeat:initial;"><div sty=
le=3D"padding:0px 8px;vertical-align:top;color:rgb(0,0,0);border-left:1px s=
olid rgb(221,221,221);background-repeat:initial;white-space:pre-wrap;"><spa=
n style=3D"margin:0px;padding:0px;vertical-align:baseline;color:rgb(51,153,=
0);"> CHAIN_COMMANDS_MEMBER_ID_RANGE(theChainMember, idFirst, idLast)</span=
></div></li><li style=3D"color:rgb(172,172,172);padding:0px;vertical-align:=
baseline;list-style-type:decimal;background-repeat:initial;"><div style=3D"=
padding:0px 8px;vertical-align:top;color:rgb(0,0,0);border-left:1px solid r=
gb(221,221,221);background-repeat:initial;white-space:pre-wrap;"><span styl=
e=3D"margin:0px;padding:0px;vertical-align:baseline;color:rgb(51,153,0);">a=
ssing m_hWndClient to the splitter</span></div></li><li style=3D"color:rgb(=
172,172,172);padding:0px;vertical-align:baseline;list-style-type:decimal;ba=
ckground-repeat:initial;"><div style=3D"padding:0px 8px;vertical-align:top;=
color:rgb(0,0,0);border-left:1px solid rgb(221,221,221);background-repeat:i=
nitial;white-space:pre-wrap;"><span style=3D"margin:0px;padding:0px;vertica=
l-align:baseline;color:rgb(51,153,0);">set the parent of m_hWndMDIClient to=
 the splitter</span></div></li><li style=3D"padding:0px;vertical-align:base=
line;list-style-type:decimal;background-repeat:initial;"><div style=3D"padd=
ing:0px 8px;vertical-align:top;border-left:1px solid rgb(221,221,221);backg=
round-repeat:initial;white-space:pre-wrap;"><font color=3D"#339900">check p=
art of the implementation here </font><a href=3D"https://pastebin.com/QvRSQ=
2xz" target=3D"_blank">https://pastebin.com/QvRSQ2xz</a></div></li></ol><di=
v><font face=3D"Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, D=
ejaVu Sans Mono, Bitstream Vera Sans Mono, monospace, serif"><span style=3D=
"font-size:12px;white-space:pre-wrap;">If anybody wants the project, email =
me</span></font></div></div><div><font face=3D"Consolas, Menlo, Monaco, Luc=
ida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, m=
onospace, serif"><span style=3D"font-size:12px;white-space:pre-wrap;">Hey N=
enad add my macro to WTL</span></font></div></div></div></div>
<p></p>

    </div>
=20=20=20=20=20

=20=20=20=20
    <div style=3D"color:rgb(255,255,255);height:0px;"></div>


</div>



=20=20






</div></div></blockquote></div>
</p>

    </div>
=20=20=20=20=20

    <!--~-|**|PrettyHtmlStart|**|-~-->
    <div style=3D"color: #fff; height: 0;">__._,_.___</div>

=20=20=20=20=20=20=20=20=20=20
=20=20
=20

=20=20=20=20
    <div style=3D"clear:both"> </div>

    <div id=3D"fromDMARC" style=3D"margin-top: 10px;">
        <hr style=3D"height:2px ; border-width:0; color:#E3E3E3; background=
-color:#E3E3E3;">
        Posted by: =3D?UTF-8?Q?Nenad_Stefanovi=3DC4=3D87?=3D &lt;nenad2001@=
gmail.com&gt;        <hr style=3D"height:2px ; border-width:0; color:#E3E3E=
3; background-color:#E3E3E3;">
     </div>
    <div style=3D"clear:both"> </div>

    <table cellspacing=3D4px style=3D"margin-top: 10px; margin-bottom: 10px=
; color: #2D50FD;">
      <tbody>
        <tr>
          <td style=3D"font-size: 12px; font-family: arial; font-weight: bo=
ld; padding: 7px 5px 5px;"  >
                          <a style=3D"text-decoration: none; color: #2D50FD=
" href=3D"https://groups.yahoo.com/neo/groups/wtl/conversations/messages/16=
793;_ylc=3DX3oDMTJwdnRvdGc0BF9TAzk3MzU5NzE0BGdycElkAzQ4ODYyMQRncnBzcElkAzE3=
MDUwMDY3NjQEbXNnSWQDMTY3OTMEc2VjA2Z0cgRzbGsDcnBseQRzdGltZQMxNjAwNjY0NTcx?ac=
t=3Dreply&messageNum=3D16793">Reply via web post</a>
                      </td>
          <td>&bull;</td>
          <td style=3D"font-size: 12px; font-family: arial; padding: 7px 5p=
x 5px;" >
            <a href=3D"mailto:[email protected]?subject=3DRe%3A%20%5Bwtl%=
5D%20mdi%20with%20splitter%20and%20edit%20controls%2C%20cut%20%2C%20copy%20=
and%20paste%20fixed" style=3D"text-decoration: none; color: #2D50FD;">
               Reply to sender            </a>
          </td>
          <td>&bull;</td>
          <td style=3D"font-size: 12px; font-family: arial; padding: 7px 5p=
x 5px;">
            <a href=3D"mailto:[email protected]?subject=3DRe%3A%20%5Bwtl%=
5D%20mdi%20with%20splitter%20and%20edit%20controls%2C%20cut%20%2C%20copy%20=
and%20paste%20fixed" style=3D"text-decoration: none; color: #2D50FD">
              Reply to group            </a>
          </td>
          <td>&bull;</td>
          <td style=3D"font-size: 12px; font-family: arial; padding: 7px 5p=
x 5px;" >
            <a href=3D"https://groups.yahoo.com/neo/groups/wtl/conversation=
s/newtopic;_ylc=3DX3oDMTJkcGJvamc4BF9TAzk3MzU5NzE0BGdycElkAzQ4ODYyMQRncnBzc=
ElkAzE3MDUwMDY3NjQEc2VjA2Z0cgRzbGsDbnRwYwRzdGltZQMxNjAwNjY0NTcx" style=3D"t=
ext-decoration: none; color: #2D50FD">Start a New Topic</a>
          </td>
          <td>&bull;</td>
          <td style=3D"font-size: 12px; font-family: arial; padding: 7px 5p=
x 5px;color: #2D50FD;" >
                            <a href=3D"https://groups.yahoo.com/neo/groups/=
wtl/conversations/topics/16786;_ylc=3DX3oDMTM1NmxjOGR2BF9TAzk3MzU5NzE0BGdyc=
ElkAzQ4ODYyMQRncnBzcElkAzE3MDUwMDY3NjQEbXNnSWQDMTY3OTMEc2VjA2Z0cgRzbGsDdnRw=
YwRzdGltZQMxNjAwNjY0NTcxBHRwY0lkAzE2Nzg2" style=3D"text-decoration: none; c=
olor: #2D50FD;">Messages in this topic</a>
                (3)
                      </td>
        </tr>
      </tbody>
    </table>

=20=20=20=20=20=20=20=20

<!------- Start Nav Bar ------>
<!-- |**|begin egp html banner|**| -->
<!-- |**|end egp html banner|**| -->




=20

<!-- |**|begin egp html banner|**| -->
<div id=3D"ygrp-vital" style=3D"background-color: #f2f2f2; font-family: Ver=
dana; font-size: 10px; margin-bottom: 10px; padding: 10px;">

    <span id=3D"vithd" style=3D"font-weight: bold; color: #333; text-transf=
orm: uppercase; "><a href=3D"https://groups.yahoo.com/neo/groups/wtl/info;_=
ylc=3DX3oDMTJkYnE1bm90BF9TAzk3MzU5NzE0BGdycElkAzQ4ODYyMQRncnBzcElkAzE3MDUwM=
DY3NjQEc2VjA3Z0bARzbGsDdmdocARzdGltZQMxNjAwNjY0NTcx" style=3D"text-decorati=
on: none;">Visit Your Group</a></span>

     <ul style=3D"list-style-type: none; margin: 0; padding: 0; display: in=
line;">
                                                    </ul>
  </div>


<div id=3D"ft" style=3D"font-family: Arial; font-size: 11px; margin-top: 5p=
x; padding: 0 2px 0 0; clear: both;">
  <a href=3D"https://groups.yahoo.com/neo;_ylc=3DX3oDMTJjZXQ3N3I5BF9TAzk3ND=
c2NTkwBGdycElkAzQ4ODYyMQRncnBzcElkAzE3MDUwMDY3NjQEc2VjA2Z0cgRzbGsDZ2ZwBHN0a=
W1lAzE2MDA2NjQ1NzE-" style=3D"float: left;"><img src=3D"https://s.yimg.com/=
ru/0.9.12/min/css/yahoo_en-US_f_pw_101x21.png" height=3D"21" width=3D"101" =
alt=3D"Yahoo! Groups" style=3D"border: 0;"/></a>
  <div style=3D"color: #747575; float: right;"> &bull; <a href=3D"https://i=
nfo.yahoo.com/privacy/us/yahoo/groups/details.html" style=3D"text-decoratio=
n: none;">Privacy</a> &bull; <a href=3D"mailto:wtl-unsubscribe@yahoogroups.=
com?subject=3DUnsubscribe" style=3D"text-decoration: none;">Unsubscribe</a>=
 &bull; <a href=3D"https://info.yahoo.com/legal/us/yahoo/utos/terms/" style=
=3D"text-decoration: none;">Terms of Use</a> </div>
</div>
<br>

<!-- |**|end egp html banner|**| -->

  </div> <!-- ygrp-msg -->

=20
  <!-- Sponsor -->
  <!-- |**|begin egp html banner|**| -->
  <div id=3D"ygrp-sponsor" style=3D"width:160px; float:right; clear:none; m=
argin:0 0 25px 0; background: #fff;">

<!-- Start Recommendations -->
<div id=3D"ygrp-reco">
     </div>
<!-- End Recommendations -->



  </div>   <!-- |**|end egp html banner|**| -->

  <div style=3D"clear:both; color: #FFF; font-size:1px;">.</div>
</div>

  <img src=3D"http://geo.yahoo.com/serv?s=3D97359714/grpId=3D488621/grpspId=
=3D1705006764/msgId=3D16793/stime=3D1600664571" width=3D"1" height=3D"1"> <=
br>

<img src=3D"http://y.analytics.yahoo.com/fpc.pl?ywarid=3D515FB27823A7407E&a=
=3D10001310322279&js=3Dno&resp=3Dimg" width=3D"1" height=3D"1">=20

<div style=3D"color: #fff; height: 0;">__,_._,___</div>
<!--~-|**|PrettyHtmlEnd|**|-~-->

</body>

<!--~-|**|PrettyHtmlStart|**|-~-->
<head>
  <style type=3D"text/css">
  <!--
  #ygrp-mkp {
  border: 1px solid #d8d8d8;
  font-family: Arial;
  margin: 10px 0;
  padding: 0 10px;
}

#ygrp-mkp hr {
  border: 1px solid #d8d8d8;
}

#ygrp-mkp #hd {
  color: #628c2a;
  font-size: 85%;
  font-weight: 700;
  line-height: 122%;
  margin: 10px 0;
}

#ygrp-mkp #ads {
  margin-bottom: 10px;
}

#ygrp-mkp .ad {
  padding: 0 0;
}

#ygrp-mkp .ad p {
  margin: 0;
}

#ygrp-mkp .ad a {
  color: #0000ff;
  text-decoration: none;
}
  #ygrp-sponsor #ygrp-lc {
  font-family: Arial;
}

#ygrp-sponsor #ygrp-lc #hd {
  margin: 10px 0px;
  font-weight: 700;
  font-size: 78%;
  line-height: 122%;
}

#ygrp-sponsor #ygrp-lc .ad {
  margin-bottom: 10px;
  padding: 0 0;
}

  #actions {
    font-family: Verdana;
    font-size: 11px;
    padding: 10px 0;
  }

  #activity {
    background-color: #e0ecee;
    float: left;
    font-family: Verdana;
    font-size: 10px;
    padding: 10px;
  }

  #activity span {
    font-weight: 700;
  }

  #activity span:first-child {
    text-transform: uppercase;
  }

  #activity span a {
    color: #5085b6;
    text-decoration: none;
  }

  #activity span span {
    color: #ff7900;
  }

  #activity span .underline {
    text-decoration: underline;
  }

  .attach {
    clear: both;
    display: table;
    font-family: Arial;
    font-size: 12px;
    padding: 10px 0;
    width: 400px;
  }

  .attach div a {
    text-decoration: none;
  }

  .attach img {
    border: none;
    padding-right: 5px;
  }

  .attach label {
    display: block;
    margin-bottom: 5px;
  }

  .attach label a {
    text-decoration: none;
  }
=20=20
  blockquote {
    margin: 0 0 0 4px;
  }

  .bold {
    font-family: Arial;
    font-size: 13px;
    font-weight: 700;
  }

  .bold a {
    text-decoration: none;
  }

  dd.last p a {
    font-family: Verdana;
    font-weight: 700;
  }

  dd.last p span {
    margin-right: 10px;
    font-family: Verdana;
    font-weight: 700;
  }

  dd.last p span.yshortcuts {
    margin-right: 0;
  }

  div.attach-table div div a {
    text-decoration: none;
  }

  div.attach-table {
    width: 400px;
  }

  div.file-title a, div.file-title a:active, div.file-title a:hover, div.fi=
le-title a:visited {
    text-decoration: none;
  }

  div.photo-title a, div.photo-title a:active, div.photo-title a:hover, div=
..photo-title a:visited {
    text-decoration: none;
  }

  div#ygrp-mlmsg #ygrp-msg p a span.yshortcuts {
    font-family: Verdana;
    font-size: 10px;
    font-weight: normal;
  }

  .green {
    color: #628c2a;
  }

  .MsoNormal {
    margin: 0 0 0 0;
  }

  o {
    font-size: 0;
  }

  #photos div {
    float: left;
    width: 72px;
  }

  #photos div div {
    border: 1px solid #666666;
    height: 62px;
    overflow: hidden;
    width: 62px;
  }

  #photos div label {
    color: #666666;
    font-size: 10px;
    overflow: hidden;
    text-align: center;
    white-space: nowrap;
    width: 64px;
  }

  #reco-category {
    font-size: 77%;
  }

  #reco-desc {
    font-size: 77%;
  }

  .replbq {
    margin: 4px;
  }

  #ygrp-actbar div a:first-child {
   /* border-right: 0px solid #000;*/
    margin-right: 2px;
    padding-right: 5px;
  }

  #ygrp-mlmsg {
    font-size: 13px;
    font-family: Arial, helvetica,clean, sans-serif;
    *font-size: small;
    *font: x-small;
  }

  #ygrp-mlmsg table {
    font-size: inherit;
    font: 100%;
  }

  #ygrp-mlmsg select, input, textarea {
    font: 99% Arial, Helvetica, clean, sans-serif;
  }

  #ygrp-mlmsg pre, code {
    font:115% monospace;
    *font-size:100%;
  }

  #ygrp-mlmsg * {
    line-height: 1.22em;
  }

  #ygrp-mlmsg #logo {
    padding-bottom: 10px;
  }


  #ygrp-msg p a {
    font-family: Verdana;
  }

  #ygrp-msg p#attach-count span {
    color: #1E66AE;
    font-weight: 700;
  }

  #ygrp-reco #reco-head {
    color: #ff7900;
    font-weight: 700;
  }

  #ygrp-reco {
    margin-bottom: 20px;
    padding: 0px;
  }

  #ygrp-sponsor #ov li a {
    font-size: 130%;
    text-decoration: none;
  }

  #ygrp-sponsor #ov li {
    font-size: 77%;
    list-style-type: square;
    padding: 6px 0;
  }=20

  #ygrp-sponsor #ov ul {
    margin: 0;
    padding: 0 0 0 8px;
  }

  #ygrp-text {
    font-family: Georgia;
  }

  #ygrp-text p {
    margin: 0 0 1em 0;
  }

  #ygrp-text tt {
    font-size: 120%;
  }

  #ygrp-vital ul li:last-child {
    border-right: none !important;=20
  }=20
  -->
  </style>
</head>

<!--~-|**|PrettyHtmlEnd|**|-~-->
</html>
<!-- end group email -->


--00000000000004b0b305afcbc36d--