|
Just curious - are you using a CWebBrowserCtrl expressly for the purpose of getting at the page's HTML?
/ravi
My new year's resolution: 2048 x 1536
Home | Articles | Freeware | Music
ravib@ravib.com
|
|
|
|
|
actually I am having the CWebBrowser go to a website, and then select all the information on the website and then put all the information in a text file, excluding pictures and links. but now I would like to add getting the page source from the website too, there is some hidden data I would like to automatically retrieve, like the links url
|
|
|
|
|
If you aren't using the CWebBrowserCtrl to display the page to the user, you may want to see this[^] article.
/ravi
My new year's resolution: 2048 x 1536
Home | Articles | Freeware | Music
ravib@ravib.com
|
|
|
|
|
hi all,
I have done a small programe in c++. it is a "phonebook"
the user can add,delete,find....contacts
I need to make the user to enter a password before that.
|
|
|
|
|
suroor_bio wrote:
I need to make the user to enter a password before that.
Ok, so what's your question? Is this a console or GUI application?
"Ideas are a dime a dozen. People who put them into action are priceless." - Unknown
|
|
|
|
|
|
One way to do this is to do in the C style by using getch() function to enter the charater. getch() function do not display character on the screen.
char passwd[15];
int i=-1;
printf("Enter Password:");
do
{
passwd[++i] = getch();
} while(passwd[i] != 13);
passwd[i] = '\0';
printf("\npassword is %s\n",passwd);
13 is the ascii code for the return key. Hope it will work
Ritu Kwatra
|
|
|
|
|
Ritu Kwatra wrote:
13 is the ascii code for the return key. Hope it will work
WOW!, you back
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers,
Alok Gupta
|
|
|
|
|
|
|
|
|
I'm attempting to write a small tool that automatically calls a function on start-up...but my problem is I want the dialog window so be displayed first. If I call the function from the OnInitDialog() it executes it before the window is displayed.
What is the easiest way around this?
|
|
|
|
|
Here's one way:
#define UWM_SOMETHING (WM_APP + 1234)
BEGIN_MESSAGE_MAP(CMyDialog, CDialog)
ON_MESSAGE(UWM_SOMETHING, OnSomething)
END_MESSAGE_MAP()
BOOL CMyDialog::OnInitDialog()
{
CDialog::OnInitDialog();
...
PostMessage(UWM_SOMETHING);
return TRUE;
}
LRESULT CMyDialog::OnSomething( WPARAM, LPARAM )
{
return 1;
}
"Ideas are a dime a dozen. People who put them into action are priceless." - Unknown
|
|
|
|
|
Thanks for a quick response
I tried your suggestion but unfortunately it has the same result... The OnSomething() function is still executed before the window is displayed.
|
|
|
|
|
Which means you'll need to use a separate thread to do the work in. See here.
"Ideas are a dime a dozen. People who put them into action are priceless." - Unknown
|
|
|
|
|
Got it, thanx
|
|
|
|
|
Maybe it will work if you overwrite the dialog's
OnActivate() member function and call your
function from there the first time it is called.
(I'm not sure where on the timeline OnActivate() gets invoked)
Steve T
|
|
|
|
|
Hello
BOOL Pump()
{
MSG msg;
LONG lIdle = 0;
CWinApp* app = AfxGetApp();
while (::PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE))
{
if (!app->PumpMessage())
{
::PostQuitMessage(0);
return FALSE;
}
}
while (app->OnIdle(lIdle++));
return TRUE;
}
BOOL CzedusDlg::OnInitDialog()
{
...
ShowWindow(SW_SHOW);
Pump();
MessageBox(_T("It's your calculations"), _T("message"), MB_OK);
}
Andrew
|
|
|
|
|
I had a similar problem and my solution was a bit crude but worked.
First, in OnInitDialog start a time.
Second, in the OnTimer function do a find for the window by title (assuming you know this, I wrote my own function using EnumWindows for to a partial match).
Wait until the handle returned is not NULL then your window has been displayed.
Elaine
The tigress is here
|
|
|
|
|
My C++ book says that trying to store more characters then the array has space for can cause problems. What the book I have doesn't tell me is how to prevent a user from entering too many characters. The code sample is;
char name[31];
cout << " Enter your name: ";
cin >> name;
What is the best method to take text input from the user?
If only I had more time!
|
|
|
|
|
Example
#include <iostream>
using namespace std;
int main( )
{
ws( cin );
char c[10];
cin.width( 9 );
cin >> c;
cout << c << endl;
}
MSDN is your best friend.
Don't try it, just do it!
|
|
|
|
|
One way would be to accept one character at a time until either Enter is pressed or the maximum number of characters has been reached. Search for examples using getch() and getche() .
"Ideas are a dime a dozen. People who put them into action are priceless." - Unknown
|
|
|
|
|
Use a C++ type which is dynamically expandable,
std::string s;
std::cin >> s;
Which will be fine unless you have whitespace in the name, and then you would need something like (this would have been a problem with the exising code as well):
std::string s;
std::getline(cin,s);
If you wanted to get really fancy you could also use an istream_iterator<string>, but for examples this simple I don't think it really buys you anything.
|
|
|
|
|
is there any limitations on the type used? i guess this is for a school project right? if your project does not have any limitations, use the string class.
#include <iostream>
using std::cout;
using std::endl;
using std::cin;
#include <string>
using std::string;
using std::getline;
int main()
{
string test;
cout << "name :";
getline(cin,test);
cout << "Hello " << test << endl;
return 1;
}
this effectively removes any limitiations on character size inputs, which imho, is bad. imagine you have an indian name (no offence intended) and an english name. normally indian names are longer, so if you used a larger array size, the english name wastes a lot of memory. string dynamically allocates the memory spaces, so nothing is wasted. and you don't have to explicitly deal with the memory size (i.e. no magic numbers).
lastly, you'll find that getline will require you to press return twice to get the line if u're using vc++. this is a bug in the implementation of string. follow http://www.tek-tips.com/faqs.cfm?fid=5193 to fix the bug.
hope this is clear enough.
"Learning does not make one learned: there are those who have knowledge and those who have understanding. The first requires memory, the second philosophy." - Abbe Faria, The Count on Monte Cristo
|
|
|
|