|
CString cDlgItemTxt;
cDlgItemTxt.LoadString( IDS_STRINGTABLEID );
GetDlgItem( ID_DLGITEM )->SetWindowText( cDlgItemTxt );
|
|
|
|
|
koos slager wrote: CString cDlgItemTxt;
cDlgItemTxt.LoadString( IDS_STRINGTABLEID );
GetDlgItem( ID_DLGITEM )->SetWindowText( cDlgItemTxt );
the value is assigned to a control's caption at run time, but i am talking about at design time.
Best Regards,
Mushq
Mushtaque Ahmed Nizamani
Software Engineer
Ultimus Pakistan
"English is my second language; please excuse any grammatical or spelling mistakes"
|
|
|
|
|
I’m sorry didn’t read your question very well.
As far as I know it is impossible.
Here you can read the Parameters you can pass to a control http://msdn2.microsoft.com/en-us/library/aa380902.aspx created in the resource.
I tried to manually insert a string table Id, after reordering the resource (putting the string table before the dialog’s definition, but it didn’t work.
|
|
|
|
|
Can't you go to the string table, select the string you want, control+c, and then control+v in the caption of your static?
Greetings.
--------
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
|
|
|
|
|
Wow! How did you accomplished all that at design time?
-- modified at 4:47 Tuesday 31st July, 2007
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
|
|
|
|
|
Trying to make a small notification window in vc++ , like you might know from Firefox (download finished) or Thunderbird (new emails). My problem is that when I show it and the main
form(Parent window) is also poped with nitification window.... How to prevent this
Pls help me.............
|
|
|
|
|
I'm not sure but I think this is because when you intercepthe message you use to show the dialog box it gives automatically the focus to your application and your CFormView is shown as consequence. Maybe you can made something like ParentView.SetFocus (FALSE) or ParentWidnow.ShowWindow (FALSE) at the beggining of your code, and the opposite when you re-need it.
Greetings.
--------
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
|
|
|
|
|
have a look
http://www.codeguru.com/Cpp/controls/statusbar/article.php/c5937/
Ashish K
|
|
|
|
|
As per my understanding you might have been using a popup window/dialog. If so give the parent window as desktop. Use GetDesktopWindow API
- NS -
|
|
|
|
|
Parasing website data : intermitten rubbish characters retrived
hi, i am making a program to parse data from website, to do that i need to download the file
Step1: download file
CString Data;<br />
DeleteUrlCacheEntry(url);
<br />
HINTERNET IntOpen = ::InternetOpen("Sample", LOCAL_INTERNET_ACCESS, NULL, 0, 0);<br />
HINTERNET handle = ::InternetOpenUrl(IntOpen, url, NULL, NULL, NULL, NULL);<br />
HANDLE hFile = ::CreateFile("c:\\index.txt", GENERIC_WRITE, NULL, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);<br />
<br />
char Buffer[1024];<br />
DWORD dwRead =0;<br />
while(::InternetReadFile(handle, Buffer, sizeof(Buffer), &dwRead) == TRUE)<br />
{<br />
if ( dwRead == 0) <br />
break;<br />
DWORD dwWrite = 0;<br />
::WriteFile(hFile, Buffer, dwRead, &dwWrite, NULL);<br />
Data+=Buffer;<br />
}<br />
<br />
::CloseHandle(hFile);<br />
::InternetCloseHandle(handle);<br />
the Cstring "Data" contains the website in a plain text
step2 : parse the data using brackets
because a lot of data in within <> brackets, this can be used to reference the desired data
<br />
CString Mydialog::Parse_Backets(CString file_string, CString item, int bracket_distance)<br />
{<br />
file_string.ReleaseBuffer();<br />
<br />
int start_index;<br />
int end_index;<br />
start_index = file_string.Find(item);<br />
if(start_index == -1)<br />
{<br />
CString error_string = "Error";<br />
error_flag = 1;<br />
return error_string;<br />
}<br />
for(int i =0; i <bracket_distance; i++)<br />
{<br />
start_index = file_string.Find(">",start_index)+1;<br />
}<br />
end_index = file_string.Find("<",start_index) - 1;<br />
file_string=file_string.Mid(start_index, end_index-start_index+1 );<br />
return file_string;<br />
}
now the problem is once in a while i get rubbish characters. Like the actual value when i browse to the website, should be 0.55 , i get 0.aj5m5, or even 0.1595
the website is http://stquote.sgx.com/live/st/STStock.asp?stk=G
does anyone knows how to solve this problem?
using:
- mfc
- VC6.0
|
|
|
|
|
There is no indication in the documentation for InternetReadFile that the buffer will be null terminated on return, therefore your line Data+=Buffer; will inevitably add extra rubbish characters to Data.
|
|
|
|
|
yes, how do i solve this problem? it doesnt put any null character
|
|
|
|
|
awah wrote: how do i solve this problem?
By ensuring that Buffer is terminated. There are two ways of doing this. Either call ZeroMemory() or memset() before calling WriteFile() , or terminate Buffer at the point equal to the return value of WriteFile() .
"A good athlete is the result of a good and worthy opponent." - David Crow
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
The first sentence is correct. The second two incorrect for the code in the original question.
The problem occurs because of the locally declared char Buffer[1024]; and the InternetReadFile(handle, Buffer, sizeof(Buffer), &dwRead). The given Buffer in fact cant be terminated without potential loss of characters read because it has been potentially completely filled by the InternetReadFile. To correctly terminate the Buffer for later appending to a CString would require a Buffer[dwRead] = '\0'; where for most iterations of the loop dwRead = 1024, which would either invalidate one of the other local variables or corrupt the stack in some other way.
The correct way would be InternetReadFile(handle, Buffer, sizeof(Buffer)-1, &dwRead) and then a Buffer[dwRead] = '\0'; inside the while loop.
|
|
|
|
|
Hi,
I am creating and deleting MFC gdi objects and watching the number of GDI Objects that application uses via Windows Task Manager.
When i create a CBrush object by CreateSolidBrush i observe an increment in GDI Object count of application. However when i delete the brush by DeleteObject there happens no change.
I create an MFC Dialog Application, add two buttons and two handlers for them. And a CBrush* member.
Here is the functions that handles button clicks:
// m_pBrush is a member CBrush*
void CBrushSampleDlg::OnBnClickedButtonCreate()
{
m_pBrush = new CBrush;
m_pBrush->CreateSolidBrush(RGB(155,0,0));
}
void CBrushSampleDlg::OnBnClickedButtonDelete()
{
m_pBrush->DeleteObject();
delete m_pBrush;
}
Thanks
Febil
|
|
|
|
|
|
i have visited rtslink.com and download xml tags evrything finished
i will describe the scenario
actaully we need tally software it should run behind the code but simply minimise our window and then we have specific xml tags available on rts link .com
eg.group.xml
and then there are some functions rtsopen,send ,getlasterror message
thats the problem with me
pls give clear definition and send some sample code in c#.net
|
|
|
|
|
Please stop spamming the C++ forum with C# related questions. And use the modify button instead of posting 3 messages in a row.
|
|
|
|
|
Please do not create more than one thread for a single problem. And more over this is a VC++ forum.
|
|
|
|
|
hi i m working in asp.net and using c#language..
|
|
|
|
|
This is VC++ forum. Plzzz move to asp.net forum.
Come online at:-
jubinc@skype
|
|
|
|
|
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Its very good but do you have any question about c++?
|
|
|
|
|
how to import data to tally from xml ?
i have tally software
and rts.dll file but it could not be opened..
pls provide some suggestions and code
|
|
|
|
|
I have sound knowledge of Class Template & Function Template.
But I was trying to write a class as follows,
<br />
class CProg<br />
{<br />
int val;<br />
public :<br />
void SetVal(int y);<br />
template<class T><br />
void AddValues(T a, T b);<br />
};<br />
void CProg::SetVal(int y)<br />
{<br />
val = y;<br />
}<br />
<br />
template<class T><br />
void CProg::AddValues(T a, T b)<br />
{<br />
T x = a+b;<br />
}<br />
<br />
void main()<br />
{<br />
CProg prog;<br />
prog.SetVal(9);<br />
}<br />
Above code works well. But when I change main(0 as follows,
void main()
{
CProg prog;
prog.SetVal(9);
int a,b;
a = b =8;
prog.AddValues(a,b);
}
It gives compile-time error as,
Failed to specialize function template 'void __thiscall CProg::AddValues(T,T)'
With the following template arguments:
'int'
|
|
|
|