Toolbars (SaveBarState, LoadBarState)
Robertson David -- davidr@devmail.sps.mot.com
Thursday, April 25, 1996
VC++ 4.1
WinNT/Win95
Ok everyone, what am I doing wrong. I have several toolbars in my
CMainFrame which are all enabled for docking. Everyone docks and
floats as desired while running. In CMainFrame::OnClose, I call
SaveBarState. In CMainFrame::OnCreate, after toolbar creation and
docking calls, I call LoadBarState. If my bars are floating, all
works fine. If my bars are docked, they dock, but not where I had
put them. I looked at the VC++ sample DOCKTOOL, to see what they
did there. I implemented the approach they had used and still did
not get the desired results. The fact that DOCKTOOL had to use other
means than just SaveBarState and LoadBarState tells me there is
something going on.
What is the best way to save/restore the toolbar states?
Thanks all...
//==================================================//
// David Robertson davidr@devmail.sps.mot.com //
// davidr@inetport.com //
//==================================================//
Dan Kirby -- dkirby@accessone.com
Monday, April 29, 1996
You're not going to like this answer, but there are some big problems with
the LoadBarState() and SaveBarState() functions. The biggest problem is
that everytime that you save and load the states, the .INI file will grow
larger and larger consuming more and more memory everytime the states are
loaded. There is NO work-around. You need to know about this if you are
going to be thinking about using these functions. Right now, there is no
good solution for saving and loading control bar states.
--dan
----------
From: Robertson David[SMTP:davidr@devmail.sps.mot.com]
Sent: Thursday, April 25, 1996 3:23 AM
To: mfc-l@netcom.com
Subject: Toolbars (SaveBarState, LoadBarState)
VC++ 4.1
WinNT/Win95
Ok everyone, what am I doing wrong. I have several toolbars in my
CMainFrame which are all enabled for docking. Everyone docks and
floats as desired while running. In CMainFrame::OnClose, I call
SaveBarState. In CMainFrame::OnCreate, after toolbar creation and
docking calls, I call LoadBarState. If my bars are floating, all
works fine. If my bars are docked, they dock, but not where I had
put them. I looked at the VC++ sample DOCKTOOL, to see what they
did there. I implemented the approach they had used and still did
not get the desired results. The fact that DOCKTOOL had to use other
means than just SaveBarState and LoadBarState tells me there is
something going on.
What is the best way to save/restore the toolbar states?
Thanks all...
//==================================================//
// David Robertson davidr@devmail.sps.mot.com //
// davidr@inetport.com //
//==================================================//
begin 600 WINMAIL.DAT
M>)\^(B4$`0:0" `$```````!``$``0>0!@`(````Y 0```````#H``$(@ <`
M& ```$E032Y-:6-R;W-O9G0@36%I;"Y.;W1E`#$(`0V ! `"`````@`"``$$
MD 8`I (```(````,`````P``, ,````+``\.``````(!_P\!````/P``````
M``"!*Q^DOJ,0&9UN`-T!#U0"`````&UF8RUL0&YE=&-O;2YC;VT`4TU44 !M
M9F,M;$!N971C;VTN8V]M```>``(P`0````4```!33510`````!X``S !````
M$0```&UF8RUL0&YE=&-O;2YC;VT``````P`5# $````#`/X/!@```!X``3 !
M````$P```"=M9F,M;$!N971C;VTN8V]M)P```@$+, $````6````4TU44#I-
M1D,M3$!.151#3TTN0T]-`````P``.0`````+`$ Z`0````(!]@\!````! ``
M``````,-`````P``, 0````+``\.`0````(!_P\!````4P````````"!*Q^D
MOJ,0&9UN`-T!#U0"```!`&1A=FED``$P`0```!T````G9&%V:61R0&1E=FUA:6PN
M
M`!X,`0````4```!33510`````!X`'PP!````%0```&1K:7)B>4!A8V-E``@0`0```&4```!93U5214Y/
M5$=/24Y'5$],24M%5$A)4T%.4U=%4BQ"55142$5214%215-/345"24=04D]"
M3$5-4U=)5$A42$5,3T%$0D%24U1!5$4H*4%.1%-!5D5"05)35$%412@I1E5.
M0U1)``````(!"1 !````,04``"T%```_"@``3%I&=?4>B'C_``H!#P(5`J0#
MY 7K`H,`4!,#5 (`8V@*P'-E=.XR!@`&PP*#,@/&!Q,"@T8S`\4"`'!R<1(B
M?,C4U`H '"H$-L0M@;F460)!@%V92&Y9G5N8P1T:0(@2/0^Q_A)<-Y"& ?L"*Q(E,7,&\AD"$C%3 B
M`7,>P"$R+GA)3DDC@ ,0'- #\&S;`R )P&\'X M@,4Y/\R#0!;!K+0K
M"& B<"0AWQR!'. )X"@!':!K'/ 'X/\!H A@'P(>,0:0)O,?@ATWLF(=\VYK
M'5(R1'4`D*\=8A\P$? CBU(@(&@%0/\R`2C#+\0<\!TA!' ?L0I _R/2(X %
ML2=!-+,GI1U2*X&V= -@`R!B"L$H9"X*A?$*A2TM9 !P.\P];PJX$1W ,3@P
M`M%I+3$\-#0-\ S00",+63$V_PJ@`V 50"/ /)%"1@J'0/OK##!!QD8#83I#
M3D'()?!_$T, `@'\ #H$0Y<63 6U--5% Z/,!'P31R0 VP=@# `Q NP$$4P ,1&= !'L Q
M.3DV(#,Z-#(S$W!-2@]#_51OBTQ/1CMM$: M;$ QP"%Z*3Y//U,S-C] QQ7"# %!Q@J%7R-60T K
M*R T+C%>RE>1"X!.5"]@P3DU7LJY7LI/:R8$`B!:P7RD--"W'_1.!D$"FA'B 1
ML!]S!T #(+\)\ &@() B@#DB9&!C-*+])"!%8S5J$QY"(H!>RAIP_R& 1U >
M4 0@#; `D!>A:')]*9%R(Z #`&3S`Z!GV#I\.D\(0!P"E08W]I(E[*
M(JINGV^A%Z!:HV'_`8 JH68E*W!S8CCB:ZYJ)?]P0RBQ<#4A>F41,P!FX5FS
M_Q^";*,=47.Q*>!>RC!2!"#_*7 Q<'AO:B()@"C#+5!J(E\>Q!SR8\ ?0F4R
M9%[*<.\>]%309#$7,&]\X1Y0'P,;7W0G0&T+4!S01$]#X$M43T],*,$=H!'P
M^VAB@01Y=8M'T!\491('<)^!\0> `C QDB%!87 @4?\`T"$3+5!^X35!@-(B
M<14P_RG2A)%>RASS$@`A(VU&%Z#=*[!L1U D("129@#0'P+?)>&"-H\BN2)3(7H=@&5VX2SQ-W?_7LH?PC1B
M'7 =- (@.[9A[]Y7)=(EDQ_Q)-)W3H""P_TBL2^*H1V0',$A,G0V*&1^/Y1/
MF9\D,@!P:W(IX"[CG" *A2\O/9SOG?^>_?^
W%T`#T`
:`0````4```!213H@``````,`#33]-P``$!HV
`
end
Iain Waddell -- iain@cix.compulink.co.uk
Tuesday, April 30, 1996
In-Reply-To: <01BB3613.1B6E1BA0@dkirby.accessone.com>
> You're not going to like this answer, but there are some big problems
> with the LoadBarState() and SaveBarState() functions. The biggest
> problem is that everytime that you save and load the states, the .INI
> file will grow larger and larger consuming more and more memory
> everytime the states are loaded. There is NO work-around. You need to
> know about this if you are going to be thinking about using these
> functions. Right now, there is no good solution for saving and loading
> control bar states.
>
> --dan
This is not true with Visual C++ v4.1
The bug has been fixed! I have checked this on NT3.51, NT4.0 beta and
Windows 95. All that is required is the new MFC dll and even old
executables will removed the bug.
Dan Kirby -- dkirby@accessone.com
Thursday, May 02, 1996
Unfortunately, a problem still exists with VC++ 4.1
To repro:
***
Run docktool sample.
Dock the palette bar (the one on the right) to the bottom dock bar.
Exit
record ini file size
Run docktool sample again and exit
note ini file size has grown by 23 or so bytes.
The ini file will continue to grow with each run.
***
Generally speaking I think there is only a problem when you move a toolbar
on the left or right side to the top or bottom. Whether you experience the
problem depends upon what you do with the toolbars. You might be able to
do something that goes out to the .INI file a strips out duplicates or does
some cleanup work before loading the information.
But, the fact remains that the problem still exists with VC++ 4.1. The MFC
team is aware of the problem but no fix exists at this time.
--dan
----------
From: Iain Waddell[SMTP:iain@cix.compulink.co.uk]
Sent: Tuesday, April 30, 1996 4:09 PM
To: mfc-l@netcom.com
Cc: iain@cix.compulink.co.uk
Subject: RE: Toolbars (SaveBarState, LoadBarState)
In-Reply-To: <01BB3613.1B6E1BA0@dkirby.accessone.com>
> You're not going to like this answer, but there are some big problems
> with the LoadBarState() and SaveBarState() functions. The biggest
> problem is that everytime that you save and load the states, the .INI
> file will grow larger and larger consuming more and more memory
> everytime the states are loaded. There is NO work-around. You need to
> know about this if you are going to be thinking about using these
> functions. Right now, there is no good solution for saving and loading
> control bar states.
>
> --dan
This is not true with Visual C++ v4.1
The bug has been fixed! I have checked this on NT3.51, NT4.0 beta and
Windows 95. All that is required is the new MFC dll and even old
executables will removed the bug.
begin 600 WINMAIL.DAT
M>)\^(C0%`0:0" `$```````!``$``0>0!@`(````Y 0```````#H``$(@ <`
M& ```$E032Y-:6-R;W-O9G0@36%I;"Y.;W1E`#$(`0V ! `"`````@`"``$$
MD 8`/ (```(````,`````P``, ,````+``\.``````(!_P\!````/P``````
M``"!*Q^DOJ,0&9UN`-T!#U0"`````&UF8RUL0&YE=&-O;2YC;VT`4TU44 !M
M9F,M;$!N971C;VTN8V]M```>``(P`0````4```!33510`````!X``S !````
M$0```&UF8RUL0&YE=&-O;2YC;VT``````P`5# $````#`/X/!@```!X``3 !
M````$P```"=M9F,M;$!N971C;VTN8V]M)P```@$+, $````6````4TU44#I-
M1D,M3$!.151#3TTN0T]-`````P``.0`````+`$ Z`0````(!]@\!````! ``
M``````,,`````P``, 0````+``\.`0````(!_P\!````3P````````"!*Q^D
MOJ,0&9UN`-T!#U0"```!`&EA:6Y 8VEX+F-O;7!U;&EN:RYC;RYU:P!33510
M`&EA:6Y 8VEX+F-O;7!U;&EN:RYC;RYU:P``'@`", $````%````4TU44 ``
M```>``,P`0```!D```!I86EN0&-I>"YC;VUP=6QI;FLN8V\N=6L``````P`5
M# (````#`/X/!@```!X``3 !````&0```&EA:6Y 8VEX+F-O;7!U;&EN:RYC
M;RYU:P`````"`0LP`0```!X```!33510.DE!24Y 0TE8+D-/35!53$E.2RY#
M3RY52P````,``#D`````"P! .@`````"`?8/`0````0````````$;VJ1C$<^2*$1%4U0`````'@`># $````%````4TU4
M4 `````>`!\,`0```!4```!D:VER8GE 86-C97-S;VYE+F-O;0`````#``80
M8<_W5P,`!Q"8!0``'@`($ $```!E````54Y&3U)454Y!5$5,62Q!4%)/0DQ%
M35-424Q,15A)4U135TE42%9#*RLT,51/4D504D\Z*BHJ4E5.1$]#2U1/3TQ3
M04U03$5$3T-+5$A%4$%,151414)!4BA42$5/3D5/3E1(10`````"`0D0`0``
M`.,%``#?!0``D0H``$Q:1G6 -N'@_P`*`0\"%0*D`^0%ZP*#`% 3`U0"`&-H
M"L!S973N,@8`!L,"@S(#Q@<3`H.Z,Q,-?0J ",\)V3L5_W@R-34"@ J!#;$+
M8&[P9S$P,Q0@"PH2\@P!8F,`0"!5;@(0`"!U`&YA=&5L>2P@&&$@< -@`F!E
M;2!,
M'"H@8 4*A5(;0"!D;V-K3'1O!O <8&%M"U!EJBX*A40A42 =8&4;X*<'0!(`
M&W @8@K!*","#P(@)#(B\P409VAT*?\B\!\`(P(&X ) `W A,R.R=2(V11S@
M= J%%@`%H63B( N :2!F`Q C( "0W'IE()\AIQO 9PMQ&\#N;BA0'-$GAFXE
M\",@*'M.(!' !" )P&]W`Z!BL'D@,C,D0 7 AB,1*'<#
M\/\0A@( 1@=BK1)6$&
M\/\CPB25'# !@"YB)0,H\0VP&R5F(8!P+F(EY"X@5S\C$#7B-Z,C(4 =-#JT8SB#+Q @(%DWPCGC
M8O\JT1PA)6(_<2Z@!X U@C5 \QU@/P%G;P>1"& %0"5U^"Y)3C5@*+,;T!QP
M!1'%0X1D/I!L:6,;8391_P7 (4 'D4)B,2 <, !P/I _'3 %L":!#< %L#DQ
M;V'^9$+$+'(;`0# '( "("\M[D)#L!NP(P)F`- %0!8`_P# "X $($,#/5H<
M?QV'.\#Q,!)-1D,B\#*033 V0:QA=PK )#%F/4MB0['[+$ HH7A-IDQC-D%-
M8 > \2\M+2UD`' >' KT1? (,3@P`M%I+3$TGC0-\ S05F,+63$V"J#_`V ;
M<$N15#!8A@J'5SL,,/58!D8#83I9CE@((U4!TK$E=(H VP38!;4TV85% Z
M!S +@$!C4>!V+@6@(?!U1? UL%[A+OAU:UU9+UH]!F ",%MOM5Q[5 I0UYO7W5K#V$.=9QB:EA!;2]<>U)%, Q,QWP"$(V17M003! 9/4U$'(N$"X`T#T@!! D4=5>XCX*
MA3Y TB10,D;S8K\E$$S&
M!"!]MS^G=IHH)5#W*U)UNH2!9AM 2Y!)P4"B^S 2@=%G!Y %0'VW3-92TO4^
M\F4X$'(NX =Q0O0WLO\AT#@2*V%(@B+S35!&(DL4WT13?;*S+0K "& K8$"U)& )@/LE8GVW:RQ !^ !H$.C4L+_!I WHU R?O=!
M@36#-2*6U+YU`)!(U!'PC$F%^5(YX_^6D4L3-A11H4-0!' ND0I _TFR** N
M[ U,1NPJ0`=X-XP07$!D"M#"H57"X A0-)W!" Y-3O 04V!0P/S
M-D$6`'%U?("5D8AS?I'[!]%/4F1-@2M3.! #H ;P_ZI73; %D$.P0;(=(DV!
M2\'_. &*Y*91+RUW;WA^&C58!@L*A14A`+8```,`$! ``````P`1$ $```!
M```#T``0````4```!213H@``````,`
(#33]-P```U
Bill McGarry -- billm@isc-br.isc-br.com
Friday, May 10, 1996
At 10:21 PM 5/2/96 -0700, Dan Kirby wrote:
>Unfortunately, a problem still exists with VC++ 4.1
>
>***
>Run docktool sample.
>Dock the palette bar (the one on the right) to the bottom dock bar.
>Exit
>record ini file size
>Run docktool sample again and exit
>note ini file size has grown by 23 or so bytes.
>
I can also confirm that the problem exists in VC++ 4.1. I talked to MS
Support; there is no solution right now but the person that I talked to will
try to fix the problem the early part of the week (5/13 week). As soon as I
hear anything, I'll post it to MFC-L.
Bill McGarry
Olivetti North America
and someone there will
Bill McGarry -- billm@isc-br.isc-br.com
Monday, May 20, 1996
At 10:21 PM 5/2/96 -0700, Dan Kirby wrote:
>Unfortunately, a problem still exists with VC++ 4.1
>
>***
>Run docktool sample.
>Dock the palette bar (the one on the right) to the bottom dock bar.
>Exit
>record ini file size
>Run docktool sample again and exit
>note ini file size has grown by 23 or so bytes.
Microsoft Developer Support got back to me after 2 or 3 days with a fix for
this problem. I've tried the fix with the docktool sample and with my own
project and it seems to have fixed the problem completely. The fix is now
going through further testing at Microsoft and should be posted to the
Knowledge Base any day now. I felt that it would be better to wait for the
final version to come out from Microsoft before I post any code here which
may still have a problem. If I don't see the fix show up on the Knowledge
Base in the next few days, then I will post the version that I received.
(If anyone needs this fix desperately, just let me know.)
Bill McGarry
Olivetti North America
billm@mail.isc-br.com
| Вернуться в корень Архива
|