|
In MSDN, the Method "AddPage"'s describe, MS told us "AddPage adds the CPropertyPage object to the CPropertySheet object’s list of pages but does not actually create the window for the page. The framework postpones creation of the window for the page until the user selects that page.", so if I don't click the page, the page's member can not be accessed or make a exception. But if I click the page, the "OnInitDialog" will be executed, so I can access the page's member when the sheet destory. so I need initialze the all pages when the sheet be shown, the all pages's "OnInitDialog" will be executed.
|
|
|
|
|
During the constructor, modify the m_psp struct of the newly added property page in this way:
this->m_YourPropertyPageDlg.m_psp.dwFlags |= PSP_PREMATURE;
hope this helps.
|
|
|
|
|
|
Thank you !!
please see the picture .
the rigth button's code is here
{
CMainFrame *pMain=(CMainFrame*)AfxGetApp()->m_pMainWnd;
CSuiZhongView *pView=(CSuiZhongView*)pMain->GetActiveView();
CEdit* pE=(CEdit*)m_wndDlgBar.GetDlgItem(m_edit);
CString szO;
pE->GetWindowText(szO);
if(szO!="µ¥Î»Àà±ð")
{
pView->FindData(szO);;
}
}
yes is pass ,can find the data I need.
but ,when I change the item of the tree ,vc only say "yes"
then fail.
why?
Here is the Treeviewclass' code!!!
CTreeViewClass::OnSelchanged(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
CMainFrame *pMain=(CMainFrame*)AfxGetApp()->m_pMainWnd;
CSuiZhongView *pView=(CSuiZhongView*)pMain->GetActiveView();
HTREEITEM hti = m_TreeCtrl->GetSelectedItem();
if (hti)
{
CString str = m_TreeCtrl->GetItemText(hti);
if(str!="µ¥Î»Àà±ð")
{
pView->FindData(str);;
}
}
}
//ÕâÊÇListViewµÄ½ÓÊÜ´úÂë
//Here is the code of list view
void CSuiZhongView::FindData(CString data_)
{
AfxMessageBox("yes");
m_pListCtrl->DeleteAllItems();
int nI;
CString strSQL,strCurItem;
_variant_t yonghuming,yonghuhao,daiwei,taiquhao,taiquming,benyue,shangyue,dianliang,yue;
strSQL="SELECT * FROM Ïêϸ where µ¥Î» like '%" ;
strSQL=strSQL+data_+"%'";
try
{
HRESULT hTRes;
hTRes = m_pRecordset.CreateInstance(_T("ADODB.Recordset"));
if (SUCCEEDED(hTRes))
{
//----------------------------------------------------
hTRes = m_pRecordset->Open((LPTSTR)strSQL.GetBuffer(130),
_variant_t((IDispatch *)theApp.m_pConnection,true),
adOpenDynamic,adLockPessimistic,adCmdText);
if(!SUCCEEDED(hTRes))
{
AfxMessageBox(_T("Á¬½Ó!³É¹¦!\n"));
}
while(!m_pRecordset->adoEOF)
{
yonghuming = m_pRecordset->GetCollect("̞");
yonghuhao = m_pRecordset->GetCollect("Óû§ºÅ");
daiwei = m_pRecordset->GetCollect("µ¥Î»");
taiquhao = m_pRecordset->GetCollect("̨ÇøºÅ");
taiquming = m_pRecordset->GetCollect("̨ÇøÃû");
benyue = m_pRecordset->GetCollect("±¾ÔÂ");
shangyue = m_pRecordset->GetCollect("ÉÏÔÂ");
dianliang = m_pRecordset->GetCollect("µçÁ¿");
yue = m_pRecordset->GetCollect("Óà¶î");
nI=m_pListCtrl->InsertItem(0xffff,(_bstr_t)yonghuming);
// m_pListCtrl->SetItem(nI,1,1,(_bstr_t)yonghuming,NULL,0,0,0);
m_pListCtrl->SetItem(nI,0,1,(_bstr_t)yonghuhao,NULL,0,0,0);
m_pListCtrl->SetItem(nI,1,1,(_bstr_t)daiwei,NULL,0,0,0);
m_pListCtrl->SetItem(nI,2,1,(_bstr_t)taiquhao,NULL,0,0,0);
m_pListCtrl->SetItem(nI,3,1,(_bstr_t)taiquming,NULL,0,0,0);
m_pListCtrl->SetItem(nI,4,1,(_bstr_t)benyue,NULL,0,0,0);
m_pListCtrl->SetItem(nI,5,1,(_bstr_t)shangyue,NULL,0,0,0);
m_pListCtrl->SetItem(nI,6,1,(_bstr_t)dianliang,NULL,0,0,0);
m_pListCtrl->SetItem(nI,7,1,(_bstr_t)yue,NULL,0,0,0);
// nItem=m_pListCtrl.InsertItem(0xffff,(_bstr_t)vID);
m_pRecordset->MoveNext();
}
}
}
catch(_com_error e)///²¶×½Òì³£
{
CString errormessage;
MessageBox("´´½¨City¼Ç¼¼¯Ê§°Ü!",data_);
}
}
picture:
http://www.codeguru.com/forum/showthread.php?s=&threadid=249394
|
|
|
|
|
chinakknd wrote:
Thank you !!
You are welcome.
please see the picture .
Yes, it's a nice dot. 2x2 pixels on my screen at this viewing resolution. Black.
the rigth button's code is here
And the other button is... left, or wrong?
I'm sorry for being a pest like this, but without you asking a question, not to mention posting code with no reasonable formatting, containing characters in some asian character set (i.e. looking like a broken gfx driver), how are we supposed to help you with your problem?
<mode=blunt, but honest>
I could also be more direct and say "Do your own debugging". If you can't even debug your own SEGVs I think you've either selected the wrong line of work or the wrong programming language.
</mode>
|
|
|
|
|
Mike Nordell wrote:
2x2 pixels on my screen at this viewing resolution.
Cool! At my current screen resolution 1024x768x16 the dot is only 1x2 pixels! What resolution do you use??? ;)
-Dominik
_outp(0x64, 0xAD);
and
__asm mov al, 0xAD __asm out 0x64, al
do the same... but what do they do??
|
|
|
|
|
|
I guess the problem lies on line:
strSQL="SELECT * FROM Ïêϸ where µ¥Î» like '%" ;
I don't think, that my sql server is able to process it
|
|
|
|
|
I have a neat program. I would love to add some type of
documentation to the program. I tried working with
Help Workshop and I tried reading through articles on
creating and adding HTML help. I am totally stumped
and I spent alot of days trying to get just the basics
to work.
Any ideas on how to create and add simple HTML to an
application???
Please, any response any one can give me will be greatly
appreciated.
Sincerely,
Danielle (an overworked graduate student)
|
|
|
|
|
Have a look at www.helpware.net, download far.
I purchased RoboHelp, but all I use now is FrontPage 2002 and Far.
Regards, Keith
|
|
|
|
|
I just got finished creating an HTML help file for an application. When the app is installed, the HTML file gets added in the same directory as the app.
I then added a menu item called 'Help' before About on the main menu. When the user clicks we get use GetCurrentDirectory() to get our directory. Save it as a CString. Then add the html file name to the end of the string. Then use ShellExecute() to open the html file in the default browser.
I actually wanted to add a standard help file, but wasn't allowed. It works though.
void COurProgram::OnCommandsHelp() {
TCHAR szBuffer[MAX_PATH];
GetCurrentDirectory(MAX_PATH, szBuffer);
CString strHelp;
strHelp.Format("%s\\help.html", szBuffer);
SHELLEXECUTEINFO ShExecInfo = { 0 };
ShExecInfo.cbSize = sizeof( SHELLEXECUTEINFO );
ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
ShExecInfo.hwnd = NULL;
ShExecInfo.lpVerb = "open";
ShExecInfo.lpFile = strHelpFile;
ShExecInfo.lpParameters = NULL;
ShExecInfo.lpDirectory = NULL;
ShExecInfo.nShow = SW_SHOWMAXIMIZED;
ShExecInfo.hInstApp = NULL;
HINSTANCE h = ShellExecute(NULL, "open", strHelpFile, NULL, NULL, SW_SHOWMAXIMIZED);
if ((UINT)h > 32) {
} else {
}
}
</code>
|
|
|
|
|
hi
how to simple crypt and encrypt string in Visual C++
|
|
|
|
|
A quick, simple, and unreliable way is to XOR the string with another string.
char szSomeString[] = "This is a string\0";
char szXORString[] = "String\0";
char szEncString[ 100 ];
for( i = 0; i < strlen( szSomeString ); i++ )
{
szEncString[ i ] = szSomeString[ i ];
for( j = 0; j < strlen( szXORString ); j++ )
szEncString[ i ] ^= szXORString[ j ];
}
szEncString[ i ] = '\0';
To decrypt it, you repeat the same steps but backwards. However, I would suggest a stronger encrypting algorithm or some hashing functions. For that check MSDN.
// Afterall I realized that even my comment lines have bugs
|
|
|
|
|
|
Humn... I think I don't have to say that this cipher construction has only 256 possible keys and therefor can be cracked in less than a microsecond
-Dominik
_outp(0x64, 0xAD);
and
__asm mov al, 0xAD __asm out 0x64, al
do the same... but what do they do??
|
|
|
|
|
Dominik Reichl wrote:
Humn... I think I don't have to say that this cipher construction has only 256 possible keys and therefor can be cracked in less than a microsecon
That's why I refered to it as very unreliable . But for someone that has never done any encryption that is a start.
Your brought up a very good point though.
// Afterall I realized that even my comment lines have bugs
|
|
|
|
|
CEdit *pEdit;
if (pEdit=NULL)
........
or
if (!pEdit)
..........
|
|
|
|
|
|
> What different?
Semantics and clarity.
pEdit is a pointer, not a boolean. If you wanted to pass my code review you'd use the first form. And as Mike pointed out, you probably meant == not = .
/ravi
Let's put "civil" back in "civilization"
Home | Articles | Freeware | Music
ravib@ravib.com
|
|
|
|
|
if (pEdit=NULL) is an assignment, always evaluating to false (after setting pEdit to NULL, of course). A nice side effect is that you get a smaller binary in an optimized build since the compiler removes all code within the scope of that if .
if (!pEdit) compares pEdit to 0, and if it doesn't point to a valid object (NULL, the same as zero in C++, is not a valid address for an object) it executes whatever is in the scope of the if .
If you intended to write if (pEdit==NULL) , then the observable difference is exaclty nil. In the first case you compare with NULL (while opening up for the kind of typing errors you did in this post), and in the second case you are effectively communicating to the reader of the code "does not point to anything valid".
I've seen some people swear by the style if (NULL==pEdit) , even that I personally think that's the most illogical way to express that condition, to not put themselves in the situation of assigning where they intended to only compare (possibly butterfingers or a lack of const ;->).
But in the end it's all up to style.
|
|
|
|
|
Mike Nordell wrote:
A nice side effect is that you get a smaller binary in an optimized build since the compiler removes all code within the scope of that if.
LMAO !
Vikram.
-----------------------------
KI klike KDE kand kuse kit, kbut KI kmust kadmit, kstarting kall knames kwith K kis ksilly. KI khope kthey kwill kgive kup kthis kwhole kscheme ksoon kand kcome kup kwith kreal knames.
pI vThink aHungarian nNotation vIs iA aWonderful nThing cAnd pEveryone avShould vUse pIt aAll dThe nTime, adNo nMatter pWhat dThe nContext, adEven adWhen vSpeaking.
|
|
|
|
|
Actually, writing if (NULL==pEdit) is the preferred way in most shops. It would have caught his if (pEdit=NULL) error.
/ravi
Let's put "civil" back in "civilization"
Home | Articles | Freeware | Music
ravib@ravib.com
|
|
|
|
|
Ravi Bhavnani wrote:
Actually, writing if (NULL==pEdit) is the preferred way in most shops.
Wallmart or ToysRus? Sorry, but I couldn't resist it. If I ever cought anyone writing such code I'd warn him. If I noticed it again he'd be fired - dark gray on lt. gray paper.
I've been whoring for more companies than I care to count, and in the end the only thing that matters is that you write maintainable code and make your point clearly. I've in all my years met exactly one person that actually used NULL==foo, and he hasn't had much neither published nor much success with that style in cooperative code. God forbid, since it's more illogical than mixing RPN with VB!
If you have any real figures to back your statement "most shops" up, maybe it can get some credibility. If not, it's just an opinion, even more worthless than my opinions in this matter (since I at least have had technical arguments to back my experiences up with).
|
|
|
|
|
Hello,
How can i set rtl setting in Rich Edit 2.0 or Greater.
Thanks
Asad Rasheed
|
|
|
|
|
Hi,
Did any one know how to get a message in Visual C++ when a smart card was inserted or removed ?
Thanks Very much
|
|
|
|
|